--指标基础信息表 CREATE TABLE ETA_API_QUOTA_INFO ( quote_id NUMBER NOT NULL, edb_info_id NUMBER NOT NULL, edb_code VARCHAR2(200) NOT NULL, -- 假设最大长度为255,可根据实际需求调整 edb_name VARCHAR2(255) NOT NULL, UNIQUE_CODE VARCHAR2(60) NOT NULL,-- 假设最大长度为255,可根据实际需求调整 unit VARCHAR2(100) NOT NULL, -- 假设最大长度为100,可根据实际需求调整 frequency VARCHAR2(30) NOT NULL, -- 假设最大长度为50,可根据实际需求调整 start_date DATE NOT NULL, end_date DATE NOT NULL, last_date DATE NOT NULL, classify_id NUMBER NOT NULL, source NUMBER(10) NOT NULL, source_name VARCHAR2(120) NOT NULL, -- 假设最大长度为255,可根据实际需求调整 no_update NUMBER(1) DEFAULT 0 NOT NULL, -- 假设为布尔值,用数字1表示是,0表示否 is_delete NUMBER(1) DEFAULT 0 NOT NULL, -- 假设为布尔值,用数字1表示是,0表示否 is_quality NUMBER(1) DEFAULT 0 NOT NULL, -- 假设为布尔值,用数字1表示是,0表示否 data_create_time NUMBER DEFAULT 0, -- 如果是时间戳,需指定精度;若为日期类型,请改为 DATE data_update_time NUMBER DEFAULT 0, -- 如果是时间戳,需指定精度;若为日期类型,请改为 DATE ht_unique_code VARCHAR2(255), -- 假设最大长度为255,可根据实际需求调整 CONSTRAINT ETA_API_QUOTA_INFO_PK PRIMARY KEY (quote_id) ); CREATE SEQUENCE seq_eta_api_quota_info START WITH 1 INCREMENT BY 1 NOMAXVALUE; CREATE OR REPLACE TRIGGER trg_eta_api_quota_info_insert BEFORE INSERT ON eta_api_quota_info FOR EACH ROW BEGIN SELECT seq_eta_api_quota_info.NEXTVAL INTO :new.quota_id FROM dual; END; / CREATE INDEX ETA_API_QUOTA_UNIQUE_CODE ON ETA_API_QUOTA_INFO ("UNIQUE_CODE", "LATEST_DATE") --指标明细数据表 CREATE TABLE ETA_API_QUOTA_DATA ( data_id NUMBER NOT NULL, unique_code VARCHAR2(60) NOT NULL, value NUMBER NOT NULL, -- 假设最大长度为255,可根据实际需求调整 data_time DATE NOT NULL, update_time TIMESTAMP (6) NOT NULL, is_delete NUMBER(1) DEFAULT 0 NOT NULL, -- 假设为布尔值,用数字1表示是,0表示否 is_quality NUMBER(1) DEFAULT 0 NOT NULL, -- 假设为布尔值,用数字1表示是,0表示否 data_create_time NUMBER, -- 如果是时间戳,需指定精度;若为日期类型,请改为 DATE data_update_time NUMBER, -- 如果是时间戳,需指定精度;若为日期类型,请改为 DATE ht_unique_code VARCHAR2(255) , CONSTRAINT ETA_API_QUOTA_DATA_PK PRIMARY KEY (data_id), ); CREATE SEQUENCE seq_eta_api_quota_data START WITH 1 INCREMENT BY 1 NOMAXVALUE; CREATE OR REPLACE TRIGGER trg_eta_api_quota_data_insert BEFORE INSERT ON eta_api_quota_data FOR EACH ROW BEGIN SELECT seq_eta_api_quota_data.NEXTVAL INTO :new.data_id FROM dual; END; / CREATE UNIQUE INDEX ETA_API_DATA_UNIQUE_CODE ON ETA_API_QUOTA_DATA ("UNIQUE_CODE", "DATA_TIME", "IS_DELETE") CREATE INDEX IDX_UNIQUE_CODE_DATA_TIME ON ETA_API_QUOTA_DATA ("UNIQUE_CODE", "DATA_TIME" DESC) CREATE INDEX ETA_API_DATA_UNIQUE_CODE_INDEX ON ETA_API_QUOTA_DATA ("UNIQUE_CODE") /* * 辅助表,用于建立指标与指标分类之间的映射关系 */ CREATE SEQUENCE SEQ_ETA_CLASSIFY_INDEX_MAPPING START WITH 1 INCREMENT BY 1 NOMAXVALUE; CREATE OR REPLACE TRIGGER trg_SEQ_ETA_CLASSIFY_insert BEFORE INSERT ON t_eta_CLASSIFY_INDEX_MAPPINGr FOR EACH ROW BEGIN SELECT SEQ_ETA_CLASSIFY_INDEX_MAPPING.NEXTVAL INTO :new.id FROM dual; END; /** 修改已更新的指标的频度单位 */ select * from T_DAMP_DW_INDEX where INDEX_CODE in ( select INDEX_CODE from T_DAMP_DW_INDEX_LINK where LINK_CODE like 'ETA%') and FREQUENCY like '%度' UPDATE T_DAMP_DW_INDEX SET FREQUENCY = REPLACE(FREQUENCY, '度', '') WHERE INDEX_CODE IN ( SELECT INDEX_CODE FROM T_DAMP_DW_INDEX_LINK WHERE LINK_CODE LIKE 'ETA%' ) AND FREQUENCY LIKE '%度%';