Init
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
DECLARE
|
||||
v_ins_str VARCHAR2(4096);
|
||||
v_upd_str VARCHAR2(4096);
|
||||
v_trigger_sql VARCHAR2(32767);
|
||||
v_trigger_name VARCHAR2(128);
|
||||
v_ref_table_name VARCHAR2(128);
|
||||
v_table_name VARCHAR2(128); -- GIVE VALUE FOR ONE TABLE TRIGGER GENERATION
|
||||
BEGIN
|
||||
FOR i IN (
|
||||
SELECT
|
||||
'create or replace TRIGGER DW_REF_MAIN.AUTOKEY_'||TABLE_NAME||'
|
||||
BEFORE INSERT ON DW_REF_MAIN.'||TABLE_NAME||'
|
||||
FOR EACH ROW
|
||||
WHEN (NEW.A_KEY IS NULL)
|
||||
BEGIN
|
||||
SELECT
|
||||
NVL(MAX(A_KEY), 0) + 1
|
||||
INTO :NEW.A_KEY
|
||||
FROM DW_REF_MAIN.'||TABLE_NAME||';
|
||||
END;
|
||||
|
||||
' AS trigger_sql,
|
||||
'DW_REF_MAIN.AUTOKEY_'||TABLE_NAME AS trigger_name
|
||||
FROM DBA_TABLES t
|
||||
WHERE
|
||||
OWNER = 'DW_REF_MAIN'
|
||||
AND TABLE_NAME IN (
|
||||
'ASSET_CODE_TYPE', 'ABS_TYPE', 'ALLOTMENT_METHOD', 'AREA_CODE_RIAD', 'ASSET_GROUP_DETAIL', 'ASSET_GROUP_MAPPING', 'ASSET_GROUP_TMS', 'ASSET_GROUP_TMS_OLD_NEW_MAP', 'ASSET_TYPE', 'ASSET_TYPE_TMS',
|
||||
'CAPITAL_KEY', 'COUNTRY', 'CSPP_BENCHMARK', 'CSPP_GROUP_MEMBERS', 'CSPP_GROUPS', 'CURRENCY', 'ELA_COUNTRY_CEILING', 'ELA_FUNDING_GAP', 'ELA_MFI_CEILING', 'ESA_95_INSTR_CLASS_CSDB',
|
||||
'ESA_95_SECTOR', 'ESA_2010_INSTR_CLASS_CSDB', 'ESA_2010_ISSUER_CLASS_CSDB', 'ESAST_SUB_SECTOR_RIAD', 'HAIRCUT_CATEGORIES', 'HAIRCUT_SCHEDULE', 'HOLIDAY', 'INSTITUTION_C2D', 'INSTITUTION_CODE_TYPE', 'INSTITUTION_ECONOMIC_ACTIVITY',
|
||||
'INSTITUTION_IDENTIFIER_TYPE', 'INSTITUTION_RAT_OUTLOOK_VALUE', 'INSTITUTION_RAT_WATCH_VALUE', 'INSTITUTION_ROLE', 'INSTITUTION_SUBROLE', 'ISSUER_DEBTOR_GUARANTOR_GROUP', 'LIMIT_BREACH_CAUSE', 'LIMIT_TYPE', 'LIMIT_VIOLATION_TYPE', 'MAP_COUPON_FREQ',
|
||||
'MAP_COUPON_FREQ_RAR', 'MAP_COUPON_TYPE', 'MAP_COUPON_TYPE_RAR', 'NACE2_INDUSTRY_CLASS_CSDB', 'OPERATION_NAME', 'OPERATION_PROCEDURE', 'OPERATION_PUBLIC', 'OPERATION_TYPE', 'OWN_USE', 'PRICE_TYPE_MAP',
|
||||
'PRICE_TYPE_RAR', 'PSE_TYPE', 'QUOT_BASIS_MAP', 'RATING', 'RATING_ACTION', 'RATING_PD', 'RATING_PRIORITY', 'RATING_SOURCE', 'RATING_TYPE', 'REDEMPTION_FREQUENCY_CSDB',
|
||||
'REDEMPTION_TYPE_CSDB', 'RIC_CODE_CREATION_RULE', 'TMS_ACTIVITY_GROUPING', 'TMS_POSITION_CONFIG', 'MARKET_COUNTRIES', 'MEASUREMENT_UNITS', 'NCB', 'PORTFOLIO', 'PP_BUCKET', 'PP_CASH_FLOW_TYPE',
|
||||
'PP_METHOD', 'PP_PORTF_BNCHMK_MAP', 'SCENARIOS', 'INSTITUTION_ROLE_C2D'
|
||||
)
|
||||
ORDER BY TABLE_NAME
|
||||
) LOOP
|
||||
v_trigger_sql := i.trigger_sql;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(i.trigger_name);
|
||||
EXECUTE IMMEDIATE v_trigger_sql;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE(v_trigger_sql||'
|
||||
-- /
|
||||
-- ');
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
DECLARE
|
||||
v_ins_str VARCHAR2(4096);
|
||||
v_upd_str VARCHAR2(4096);
|
||||
v_trigger_sql VARCHAR2(32767);
|
||||
v_trigger_name VARCHAR2(128);
|
||||
v_ref_table_name VARCHAR2(128);
|
||||
v_table_name VARCHAR2(128); -- GIVE VALUE FOR ONE TABLE TRIGGER GENERATION
|
||||
BEGIN
|
||||
FOR i IN (
|
||||
SELECT
|
||||
'create or replace TRIGGER REFERENCE.AUTOKEY_'||TABLE_NAME||'
|
||||
BEFORE INSERT ON REFERENCE.'||TABLE_NAME||'
|
||||
FOR EACH ROW
|
||||
WHEN (NEW.A_KEY IS NULL)
|
||||
BEGIN
|
||||
SELECT
|
||||
NVL(MAX(A_KEY), 0) + 1
|
||||
INTO :NEW.A_KEY
|
||||
FROM REFERENCE.'||TABLE_NAME||';
|
||||
END;
|
||||
|
||||
' AS trigger_sql,
|
||||
'REFERENCE.AUTOKEY_'||TABLE_NAME AS trigger_name
|
||||
FROM DBA_TABLES t
|
||||
WHERE
|
||||
OWNER = 'REFERENCE'
|
||||
AND TABLE_NAME IN (
|
||||
'T_BALANCE_SHEET_STRUCTURE', 'T_CAPITAL_KEY', 'T_COUNTRY', 'T_CSDB_RATING_ACTION', 'T_CURRENCY', 'T_TMS_ACTIVITY_GROUPING'
|
||||
)
|
||||
ORDER BY TABLE_NAME
|
||||
) LOOP
|
||||
v_trigger_sql := i.trigger_sql;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(i.trigger_name);
|
||||
EXECUTE IMMEDIATE v_trigger_sql;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE(v_trigger_sql||'
|
||||
-- /
|
||||
-- ');
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
ALTER TABLE OU_REF.QUOT_BASIS_MAP ADD CONSTRAINT CHECK_ANALYZED CHECK (UPPER(ANNUALIZED) IN ( 'U', 'N', 'Y'));
|
||||
|
||||
GRANT SELECT ANY TABLE ON SCHEMA DW_REF_MAIN TO OU_REF;
|
||||
GRANT INSERT ANY TABLE ON SCHEMA DW_REF_MAIN TO OU_REF;
|
||||
GRANT UPDATE ANY TABLE ON SCHEMA DW_REF_MAIN TO OU_REF;
|
||||
GRANT DELETE ANY TABLE ON SCHEMA DW_REF_MAIN TO OU_REF;
|
||||
|
||||
GRANT SELECT ANY TABLE ON SCHEMA REFERENCE TO OU_REF;
|
||||
GRANT INSERT ANY TABLE ON SCHEMA REFERENCE TO OU_REF;
|
||||
GRANT UPDATE ANY TABLE ON SCHEMA REFERENCE TO OU_REF;
|
||||
GRANT DELETE ANY TABLE ON SCHEMA REFERENCE TO OU_REF;
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
DECLARE
|
||||
v_ins_str VARCHAR2(4096);
|
||||
v_upd_str VARCHAR2(4096);
|
||||
v_trigger_sql VARCHAR2(32767);
|
||||
v_trigger_name VARCHAR2(128);
|
||||
v_ref_table_name VARCHAR2(128);
|
||||
v_table_name VARCHAR2(128); -- GIVE VALUE FOR ONE TABLE TRIGGER GENERATION
|
||||
BEGIN
|
||||
FOR i IN (
|
||||
SELECT
|
||||
OWNER, TABLE_NAME
|
||||
FROM DBA_TABLES t
|
||||
WHERE
|
||||
OWNER = 'OU_REF'
|
||||
AND (v_table_name IS NULL OR TABLE_NAME = v_table_name)
|
||||
AND TABLE_NAME IN (
|
||||
'ASSET_CODE_TYPE', 'ABS_TYPE', 'ALLOTMENT_METHOD', 'AREA_CODE_RIAD', 'ASSET_GROUP_DETAIL', 'ASSET_GROUP_MAPPING', 'ASSET_GROUP_TMS', 'ASSET_GROUP_TMS_OLD_NEW_MAP', 'ASSET_TYPE', 'ASSET_TYPE_TMS',
|
||||
'CSPP_BENCHMARK', 'CSPP_GROUP_MEMBERS', 'CSPP_GROUPS', 'ELA_COUNTRY_CEILING', 'ELA_FUNDING_GAP', 'ELA_MFI_CEILING', 'ESA_95_INSTR_CLASS_CSDB', 'ESA_95_SECTOR', 'ESA_2010_INSTR_CLASS_CSDB', 'ESA_2010_ISSUER_CLASS_CSDB',
|
||||
'ESAST_SUB_SECTOR_RIAD', 'HAIRCUT_CATEGORIES', 'HAIRCUT_SCHEDULE', 'HOLIDAY', 'INSTITUTION_C2D', 'INSTITUTION_ECONOMIC_ACTIVITY', 'INSTITUTION_IDENTIFIER_TYPE', 'INSTITUTION_RAT_OUTLOOK_VALUE', 'INSTITUTION_RAT_WATCH_VALUE', 'INSTITUTION_SUBROLE',
|
||||
'ISSUER_DEBTOR_GUARANTOR_GROUP', 'LIMIT_BREACH_CAUSE', 'LIMIT_TYPE', 'LIMIT_VIOLATION_TYPE', 'MAP_COUPON_FREQ', 'MAP_COUPON_FREQ_RAR', 'MAP_COUPON_TYPE', 'MAP_COUPON_TYPE_RAR', 'NACE2_INDUSTRY_CLASS_CSDB', 'OPERATION_NAME',
|
||||
'OPERATION_PROCEDURE', 'OPERATION_PUBLIC', 'OPERATION_TYPE', 'OWN_USE', 'PRICE_TYPE_MAP', 'PRICE_TYPE_RAR', 'PSE_TYPE', 'RATING_ACTION', 'RATING_PD', 'RATING_PRIORITY',
|
||||
'RATING_SOURCE', 'RATING_TYPE', 'REDEMPTION_FREQUENCY_CSDB', 'REDEMPTION_TYPE_CSDB', 'TMS_POSITION_CONFIG', 'MARKET_COUNTRIES', 'MEASUREMENT_UNITS', 'NCB', 'PORTFOLIO', 'PP_BUCKET',
|
||||
'PP_CASH_FLOW_TYPE', 'PP_METHOD', 'PP_PORTF_BNCHMK_MAP', 'SCENARIOS', 'INSTITUTION_CODE_TYPE', 'QUOT_BASIS_MAP', 'RATING', 'RIC_CODE_CREATION_RULE'
|
||||
)
|
||||
ORDER BY TABLE_NAME
|
||||
) LOOP
|
||||
SELECT
|
||||
'INSERT INTO '||t.owner||'.'||t.table_name||'('||
|
||||
LISTAGG(t.column_name, ', ') WITHIN GROUP (ORDER BY t.column_id) ||')
|
||||
VALUES (' ||LISTAGG(DECODE(t.column_name, 'A_VALID_FROM', 'v_current_date', 'A_VALID_TO', 'v_future_date', DECODE(r.column_name, NULL, 'NULL', ':new.'||t.column_name)), ', ') WITHIN GROUP (ORDER BY t.column_id) ||')' AS v_ins_str,
|
||||
'UPDATE '||t.owner||'.'||t.table_name||' SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
'||LISTAGG(DECODE(r.column_name, NULL, '', ' AND DECODE('||t.column_name|| ', :old.'||t.column_name||', 1, 0) = 1'||chr(13))) WITHIN GROUP (ORDER BY t.column_id) || ' AND A_VALID_TO = v_future_date'||chr(13) AS v_upd_str
|
||||
INTO v_ins_str, v_upd_str
|
||||
FROM dba_tab_columns t, dba_tab_columns r
|
||||
WHERE
|
||||
t.owner = 'DW_REF_MAIN'
|
||||
AND t.table_name = i.TABLE_NAME
|
||||
AND 'OU_REF' = r.owner (+)
|
||||
AND t.table_name = r.table_name (+)
|
||||
AND t.column_name = r.column_name (+)
|
||||
GROUP BY t.owner, t.table_name
|
||||
;
|
||||
|
||||
v_ref_table_name := i.OWNER||'.'||i.TABLE_NAME;
|
||||
v_trigger_name := i.OWNER||'.'||i.TABLE_NAME||'_H';
|
||||
|
||||
v_trigger_sql := '
|
||||
create or replace TRIGGER '||v_trigger_name||'
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON '||v_ref_table_name||'
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE(''31/12/9999'', ''DD/MM/YYYY'');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
'||v_ins_str||';
|
||||
ELSIF DELETING THEN
|
||||
'||v_upd_str||' ;
|
||||
ELSIF UPDATING THEN
|
||||
'||v_upd_str||' ;
|
||||
'||v_ins_str||';
|
||||
END IF;
|
||||
END;';
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(v_trigger_name);
|
||||
EXECUTE IMMEDIATE v_trigger_sql;
|
||||
-- DBMS_OUTPUT.PUT_LINE(v_trigger_sql||'
|
||||
--/
|
||||
-- ');
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
create or replace TRIGGER OU_REF.BALANCE_SHEET_STRUCTURE_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.BALANCE_SHEET_STRUCTURE
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO REFERENCE.T_BALANCE_SHEET_STRUCTURE(ISIS_CODE, BS_ITEM_CODE, DESCRIPTION, BS_SUB_ITEM, BS_ITEM, BS_ITEM_GROUP, BS_ITEM_TYPE, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.ISIS_CODE, :new.BS_ITEM_CODE, :new.DESCRIPTION, :new.BS_SUB_ITEM, :new.BS_ITEM, :new.BS_ITEM_GROUP, :new.BS_ITEM_TYPE, v_current_date, v_future_date, NULL, -1);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE REFERENCE.T_BALANCE_SHEET_STRUCTURE SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(ISIS_CODE, :old.ISIS_CODE, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM_CODE, :old.BS_ITEM_CODE, 1, 0) = 1
|
||||
AND DECODE(DESCRIPTION, :old.DESCRIPTION, 1, 0) = 1
|
||||
AND DECODE(BS_SUB_ITEM, :old.BS_SUB_ITEM, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM, :old.BS_ITEM, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM_GROUP, :old.BS_ITEM_GROUP, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM_TYPE, :old.BS_ITEM_TYPE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE REFERENCE.T_BALANCE_SHEET_STRUCTURE SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(ISIS_CODE, :old.ISIS_CODE, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM_CODE, :old.BS_ITEM_CODE, 1, 0) = 1
|
||||
AND DECODE(DESCRIPTION, :old.DESCRIPTION, 1, 0) = 1
|
||||
AND DECODE(BS_SUB_ITEM, :old.BS_SUB_ITEM, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM, :old.BS_ITEM, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM_GROUP, :old.BS_ITEM_GROUP, 1, 0) = 1
|
||||
AND DECODE(BS_ITEM_TYPE, :old.BS_ITEM_TYPE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO REFERENCE.T_BALANCE_SHEET_STRUCTURE(ISIS_CODE, BS_ITEM_CODE, DESCRIPTION, BS_SUB_ITEM, BS_ITEM, BS_ITEM_GROUP, BS_ITEM_TYPE, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.ISIS_CODE, :new.BS_ITEM_CODE, :new.DESCRIPTION, :new.BS_SUB_ITEM, :new.BS_ITEM, :new.BS_ITEM_GROUP, :new.BS_ITEM_TYPE, v_current_date, v_future_date, NULL, -1);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,72 @@
|
||||
create or replace TRIGGER OU_REF.CAPITAL_KEY_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.CAPITAL_KEY
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO DW_REF_MAIN.CAPITAL_KEY(COUNTRY_CODE, NCB_INDEX, CAPITAL_KEY_ADJ, RAR_NCB_NAME, CAPITAL_KEY_VALUE, PAID_UP_CAPITAL, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.COUNTRY_CODE, :new.NCB_INDEX, NULL, :new.RAR_NCB_NAME, :new.CAPITAL_KEY_VALUE, :new.PAID_UP_CAPITAL, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_CAPITAL_KEY(COUNTRY_CODE, NCB_NAME, EUROSYSTEM_KEY, EUROSYSTEM_KEY_ECB, ESCB_KEY, ESCB_KEY_ECB, CAPITAL_KEY_VALUE, PAID_UP_CAPITAL, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.COUNTRY_CODE, :new.RAR_NCB_NAME, :new.EUROSYSTEM_KEY, :new.EUROSYSTEM_KEY_ECB, :new.ESCB_KEY, :new.ESCB_KEY_ECB, :new.CAPITAL_KEY_VALUE, :new.PAID_UP_CAPITAL, v_current_date, v_future_date, NULL,-1);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE DW_REF_MAIN.CAPITAL_KEY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(NCB_INDEX, :old.NCB_INDEX, 1, 0) = 1
|
||||
AND DECODE(RAR_NCB_NAME, :old.RAR_NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(CAPITAL_KEY_VALUE, :old.CAPITAL_KEY_VALUE, 1, 0) = 1
|
||||
AND DECODE(PAID_UP_CAPITAL, :old.PAID_UP_CAPITAL, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_CAPITAL_KEY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(NCB_NAME, :old.RAR_NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(EUROSYSTEM_KEY, :old.EUROSYSTEM_KEY, 1, 0) = 1
|
||||
AND DECODE(EUROSYSTEM_KEY_ECB, :old.EUROSYSTEM_KEY_ECB, 1, 0) = 1
|
||||
AND DECODE(ESCB_KEY, :old.ESCB_KEY, 1, 0) = 1
|
||||
AND DECODE(ESCB_KEY_ECB, :old.ESCB_KEY_ECB, 1, 0) = 1
|
||||
AND DECODE(CAPITAL_KEY_VALUE, :old.CAPITAL_KEY_VALUE, 1, 0) = 1
|
||||
AND DECODE(PAID_UP_CAPITAL, :old.PAID_UP_CAPITAL, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE DW_REF_MAIN.CAPITAL_KEY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(NCB_INDEX, :old.NCB_INDEX, 1, 0) = 1
|
||||
AND DECODE(RAR_NCB_NAME, :old.RAR_NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(CAPITAL_KEY_VALUE, :old.CAPITAL_KEY_VALUE, 1, 0) = 1
|
||||
AND DECODE(PAID_UP_CAPITAL, :old.PAID_UP_CAPITAL, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_CAPITAL_KEY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(NCB_NAME, :old.RAR_NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(EUROSYSTEM_KEY, :old.EUROSYSTEM_KEY, 1, 0) = 1
|
||||
AND DECODE(EUROSYSTEM_KEY_ECB, :old.EUROSYSTEM_KEY_ECB, 1, 0) = 1
|
||||
AND DECODE(ESCB_KEY, :old.ESCB_KEY, 1, 0) = 1
|
||||
AND DECODE(ESCB_KEY_ECB, :old.ESCB_KEY_ECB, 1, 0) = 1
|
||||
AND DECODE(CAPITAL_KEY_VALUE, :old.CAPITAL_KEY_VALUE, 1, 0) = 1
|
||||
AND DECODE(PAID_UP_CAPITAL, :old.PAID_UP_CAPITAL, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO DW_REF_MAIN.CAPITAL_KEY(COUNTRY_CODE, NCB_INDEX, CAPITAL_KEY_ADJ, RAR_NCB_NAME, CAPITAL_KEY_VALUE, PAID_UP_CAPITAL, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.COUNTRY_CODE, :new.NCB_INDEX, NULL, :new.RAR_NCB_NAME, :new.CAPITAL_KEY_VALUE, :new.PAID_UP_CAPITAL, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_CAPITAL_KEY(COUNTRY_CODE, NCB_NAME, EUROSYSTEM_KEY, EUROSYSTEM_KEY_ECB, ESCB_KEY, ESCB_KEY_ECB, CAPITAL_KEY_VALUE, PAID_UP_CAPITAL, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.COUNTRY_CODE, :new.RAR_NCB_NAME, :new.EUROSYSTEM_KEY, :new.EUROSYSTEM_KEY_ECB, :new.ESCB_KEY, :new.ESCB_KEY_ECB, :new.CAPITAL_KEY_VALUE, :new.PAID_UP_CAPITAL, v_current_date, v_future_date, NULL,-1);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,108 @@
|
||||
create or replace TRIGGER OU_REF.COUNTRY_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.COUNTRY
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO DW_REF_MAIN.COUNTRY(COUNTRY_CODE, COUNTRY_NAME, IS_AREA, IS_EUROSYSTEM, IS_EU, IS_EEA, IS_G10, IS_EURO_PERIPHERY, IS_OECD_MEMBER, EXEMPT_FROM_CQR, LOSS_SHARING, NCB_NAME, REGION, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.COUNTRY_CODE, :new.COUNTRY_NAME, :new.IS_AREA, :new.IS_EUROSYSTEM, :new.IS_EU, :new.IS_EEA, :new.IS_G10, :new.IS_EURO_PERIPHERY, :new.IS_OECD_MEMBER, :new.EXEMPT_FROM_CQR, :new.LOSS_SHARING, :new.NCB_NAME, :new.REGION, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_COUNTRY(COUNTRY_CODE, REF_AREA, COUNTRY_NAME, IS_AREA, IS_EUROSYSTEM, IS_EU, IS_EEA, IS_G10, IS_EURO_PERIPHERY, IS_OECD_MEMBER, EXEMPT_FROM_CQR, LOSS_SHARING, NCB_NAME, REGION, SORT_ORDER, BIZ_VALID_FROM, BIZ_VALID_TO, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.COUNTRY_CODE, :new.REPORTING_COUNTRY_CODE, :new.COUNTRY_NAME, :new.IS_AREA, :new.IS_EUROSYSTEM, :new.IS_EU, :new.IS_EEA, :new.IS_G10, :new.IS_EURO_PERIPHERY, :new.IS_OECD_MEMBER, :new.EXEMPT_FROM_CQR, :new.LOSS_SHARING, :new.NCB_NAME, :new.REGION, :new.SORT_ORDER, :new.BIZ_VALID_FROM, :new.BIZ_VALID_TO, v_current_date, v_future_date, NULL, -1);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE DW_REF_MAIN.COUNTRY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_NAME, :old.COUNTRY_NAME, 1, 0) = 1
|
||||
AND DECODE(IS_AREA, :old.IS_AREA, 1, 0) = 1
|
||||
AND DECODE(IS_EUROSYSTEM, :old.IS_EUROSYSTEM, 1, 0) = 1
|
||||
AND DECODE(IS_EU, :old.IS_EU, 1, 0) = 1
|
||||
AND DECODE(IS_EEA, :old.IS_EEA, 1, 0) = 1
|
||||
AND DECODE(IS_G10, :old.IS_G10, 1, 0) = 1
|
||||
AND DECODE(IS_EURO_PERIPHERY, :old.IS_EURO_PERIPHERY, 1, 0) = 1
|
||||
AND DECODE(IS_OECD_MEMBER, :old.IS_OECD_MEMBER, 1, 0) = 1
|
||||
AND DECODE(EXEMPT_FROM_CQR, :old.EXEMPT_FROM_CQR, 1, 0) = 1
|
||||
AND DECODE(LOSS_SHARING, :old.LOSS_SHARING, 1, 0) = 1
|
||||
AND DECODE(NCB_NAME, :old.NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(REGION, :old.REGION, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_COUNTRY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(REF_AREA, :old.REPORTING_COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_NAME, :old.COUNTRY_NAME, 1, 0) = 1
|
||||
AND DECODE(IS_AREA, :old.IS_AREA, 1, 0) = 1
|
||||
AND DECODE(IS_EUROSYSTEM, :old.IS_EUROSYSTEM, 1, 0) = 1
|
||||
AND DECODE(IS_EU, :old.IS_EU, 1, 0) = 1
|
||||
AND DECODE(IS_EEA, :old.IS_EEA, 1, 0) = 1
|
||||
AND DECODE(IS_G10, :old.IS_G10, 1, 0) = 1
|
||||
AND DECODE(IS_EURO_PERIPHERY, :old.IS_EURO_PERIPHERY, 1, 0) = 1
|
||||
AND DECODE(IS_OECD_MEMBER, :old.IS_OECD_MEMBER, 1, 0) = 1
|
||||
AND DECODE(EXEMPT_FROM_CQR, :old.EXEMPT_FROM_CQR, 1, 0) = 1
|
||||
AND DECODE(LOSS_SHARING, :old.LOSS_SHARING, 1, 0) = 1
|
||||
AND DECODE(NCB_NAME, :old.NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(REGION, :old.REGION, 1, 0) = 1
|
||||
AND DECODE(SORT_ORDER, :old.SORT_ORDER, 1, 0) = 1
|
||||
AND DECODE(BIZ_VALID_FROM, :old.BIZ_VALID_FROM, 1, 0) = 1
|
||||
AND DECODE(BIZ_VALID_TO, :old.BIZ_VALID_TO, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE DW_REF_MAIN.COUNTRY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_NAME, :old.COUNTRY_NAME, 1, 0) = 1
|
||||
AND DECODE(IS_AREA, :old.IS_AREA, 1, 0) = 1
|
||||
AND DECODE(IS_EUROSYSTEM, :old.IS_EUROSYSTEM, 1, 0) = 1
|
||||
AND DECODE(IS_EU, :old.IS_EU, 1, 0) = 1
|
||||
AND DECODE(IS_EEA, :old.IS_EEA, 1, 0) = 1
|
||||
AND DECODE(IS_G10, :old.IS_G10, 1, 0) = 1
|
||||
AND DECODE(IS_EURO_PERIPHERY, :old.IS_EURO_PERIPHERY, 1, 0) = 1
|
||||
AND DECODE(IS_OECD_MEMBER, :old.IS_OECD_MEMBER, 1, 0) = 1
|
||||
AND DECODE(EXEMPT_FROM_CQR, :old.EXEMPT_FROM_CQR, 1, 0) = 1
|
||||
AND DECODE(LOSS_SHARING, :old.LOSS_SHARING, 1, 0) = 1
|
||||
AND DECODE(NCB_NAME, :old.NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(REGION, :old.REGION, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_COUNTRY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(REF_AREA, :old.REPORTING_COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_NAME, :old.COUNTRY_NAME, 1, 0) = 1
|
||||
AND DECODE(IS_AREA, :old.IS_AREA, 1, 0) = 1
|
||||
AND DECODE(IS_EUROSYSTEM, :old.IS_EUROSYSTEM, 1, 0) = 1
|
||||
AND DECODE(IS_EU, :old.IS_EU, 1, 0) = 1
|
||||
AND DECODE(IS_EEA, :old.IS_EEA, 1, 0) = 1
|
||||
AND DECODE(IS_G10, :old.IS_G10, 1, 0) = 1
|
||||
AND DECODE(IS_EURO_PERIPHERY, :old.IS_EURO_PERIPHERY, 1, 0) = 1
|
||||
AND DECODE(IS_OECD_MEMBER, :old.IS_OECD_MEMBER, 1, 0) = 1
|
||||
AND DECODE(EXEMPT_FROM_CQR, :old.EXEMPT_FROM_CQR, 1, 0) = 1
|
||||
AND DECODE(LOSS_SHARING, :old.LOSS_SHARING, 1, 0) = 1
|
||||
AND DECODE(NCB_NAME, :old.NCB_NAME, 1, 0) = 1
|
||||
AND DECODE(REGION, :old.REGION, 1, 0) = 1
|
||||
AND DECODE(SORT_ORDER, :old.SORT_ORDER, 1, 0) = 1
|
||||
AND DECODE(BIZ_VALID_FROM, :old.BIZ_VALID_FROM, 1, 0) = 1
|
||||
AND DECODE(BIZ_VALID_TO, :old.BIZ_VALID_TO, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO DW_REF_MAIN.COUNTRY(COUNTRY_CODE, COUNTRY_NAME, IS_AREA, IS_EUROSYSTEM, IS_EU, IS_EEA, IS_G10, IS_EURO_PERIPHERY, IS_OECD_MEMBER, EXEMPT_FROM_CQR, LOSS_SHARING, NCB_NAME, REGION, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.COUNTRY_CODE, :new.COUNTRY_NAME, :new.IS_AREA, :new.IS_EUROSYSTEM, :new.IS_EU, :new.IS_EEA, :new.IS_G10, :new.IS_EURO_PERIPHERY, :new.IS_OECD_MEMBER, :new.EXEMPT_FROM_CQR, :new.LOSS_SHARING, :new.NCB_NAME, :new.REGION, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_COUNTRY(COUNTRY_CODE, REF_AREA, COUNTRY_NAME, IS_AREA, IS_EUROSYSTEM, IS_EU, IS_EEA, IS_G10, IS_EURO_PERIPHERY, IS_OECD_MEMBER, EXEMPT_FROM_CQR, LOSS_SHARING, NCB_NAME, REGION, SORT_ORDER, BIZ_VALID_FROM, BIZ_VALID_TO, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.COUNTRY_CODE, :new.REPORTING_COUNTRY_CODE, :new.COUNTRY_NAME, :new.IS_AREA, :new.IS_EUROSYSTEM, :new.IS_EU, :new.IS_EEA, :new.IS_G10, :new.IS_EURO_PERIPHERY, :new.IS_OECD_MEMBER, :new.EXEMPT_FROM_CQR, :new.LOSS_SHARING, :new.NCB_NAME, :new.REGION, :new.SORT_ORDER, :new.BIZ_VALID_FROM, :new.BIZ_VALID_TO, v_current_date, v_future_date, NULL, -1);
|
||||
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,36 @@
|
||||
create or replace TRIGGER OU_REF.CSDB_RATING_ACTION_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.CSDB_RATING_ACTION
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO REFERENCE.T_CSDB_RATING_ACTION(CSDB_RATING_ACTION_CODE, CSDB_RATING_ACTION_DESC, SOURCE, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.CSDB_RATING_ACTION_CODE, :new.CSDB_RATING_ACTION_DESC, :new.SOURCE, v_current_date, v_future_date, NULL, -1);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE REFERENCE.T_CSDB_RATING_ACTION SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(CSDB_RATING_ACTION_CODE, :old.CSDB_RATING_ACTION_CODE, 1, 0) = 1
|
||||
AND DECODE(CSDB_RATING_ACTION_DESC, :old.CSDB_RATING_ACTION_DESC, 1, 0) = 1
|
||||
AND DECODE(SOURCE, :old.SOURCE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE REFERENCE.T_CSDB_RATING_ACTION SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(CSDB_RATING_ACTION_CODE, :old.CSDB_RATING_ACTION_CODE, 1, 0) = 1
|
||||
AND DECODE(CSDB_RATING_ACTION_DESC, :old.CSDB_RATING_ACTION_DESC, 1, 0) = 1
|
||||
AND DECODE(SOURCE, :old.SOURCE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO REFERENCE.T_CSDB_RATING_ACTION(CSDB_RATING_ACTION_CODE, CSDB_RATING_ACTION_DESC, SOURCE, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.CSDB_RATING_ACTION_CODE, :new.CSDB_RATING_ACTION_DESC, :new.SOURCE, v_current_date, v_future_date, NULL, -1);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,66 @@
|
||||
create or replace TRIGGER OU_REF.CURRENCY_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.CURRENCY
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO DW_REF_MAIN.CURRENCY(CURRENCY_CODE, CURRENCY_NAME, COUNTRY_CODE, EUR_LEGACY, LEGACY, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.CURRENCY_CODE, :new.CURRENCY_NAME, :new.COUNTRY_CODE, :new.EUR_LEGACY, :new.LEGACY, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_CURRENCY(CURRENCY_CODE, CURRENCY_NAME, COUNTRY_CODE, EUR_LEGACY, LEGACY, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.CURRENCY_CODE, :new.CURRENCY_NAME, :new.COUNTRY_CODE, :new.EUR_LEGACY, :new.LEGACY, v_current_date, v_future_date, NULL, -1);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE DW_REF_MAIN.CURRENCY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(CURRENCY_CODE, :old.CURRENCY_CODE, 1, 0) = 1
|
||||
AND DECODE(CURRENCY_NAME, :old.CURRENCY_NAME, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(EUR_LEGACY, :old.EUR_LEGACY, 1, 0) = 1
|
||||
AND DECODE(LEGACY, :old.LEGACY, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_CURRENCY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(CURRENCY_CODE, :old.CURRENCY_CODE, 1, 0) = 1
|
||||
AND DECODE(CURRENCY_NAME, :old.CURRENCY_NAME, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(EUR_LEGACY, :old.EUR_LEGACY, 1, 0) = 1
|
||||
AND DECODE(LEGACY, :old.LEGACY, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE DW_REF_MAIN.CURRENCY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(CURRENCY_CODE, :old.CURRENCY_CODE, 1, 0) = 1
|
||||
AND DECODE(CURRENCY_NAME, :old.CURRENCY_NAME, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(EUR_LEGACY, :old.EUR_LEGACY, 1, 0) = 1
|
||||
AND DECODE(LEGACY, :old.LEGACY, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_CURRENCY SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(CURRENCY_CODE, :old.CURRENCY_CODE, 1, 0) = 1
|
||||
AND DECODE(CURRENCY_NAME, :old.CURRENCY_NAME, 1, 0) = 1
|
||||
AND DECODE(COUNTRY_CODE, :old.COUNTRY_CODE, 1, 0) = 1
|
||||
AND DECODE(EUR_LEGACY, :old.EUR_LEGACY, 1, 0) = 1
|
||||
AND DECODE(LEGACY, :old.LEGACY, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO DW_REF_MAIN.CURRENCY(CURRENCY_CODE, CURRENCY_NAME, COUNTRY_CODE, EUR_LEGACY, LEGACY, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.CURRENCY_CODE, :new.CURRENCY_NAME, :new.COUNTRY_CODE, :new.EUR_LEGACY, :new.LEGACY, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_CURRENCY(CURRENCY_CODE, CURRENCY_NAME, COUNTRY_CODE, EUR_LEGACY, LEGACY, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.CURRENCY_CODE, :new.CURRENCY_NAME, :new.COUNTRY_CODE, :new.EUR_LEGACY, :new.LEGACY, v_current_date, v_future_date, NULL, -1);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,54 @@
|
||||
create or replace TRIGGER OU_REF.INSTITUTION_ROLE_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.INSTITUTION_ROLE
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO DW_REF_MAIN.INSTITUTION_ROLE(ROLE_CODE, ROLE_DESCRIPTION, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.ROLE_CODE, :new.ROLE_DESCRIPTION, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO DW_REF_MAIN.INSTITUTION_ROLE_C2D(ROLE_CODE, ROLE_DESCRIPTION, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.ROLE_CODE, :new.ROLE_DESCRIPTION, v_current_date, v_future_date, NULL);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE DW_REF_MAIN.INSTITUTION_ROLE SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(ROLE_CODE, :old.ROLE_CODE, 1, 0) = 1
|
||||
AND DECODE(ROLE_DESCRIPTION, :old.ROLE_DESCRIPTION, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE DW_REF_MAIN.INSTITUTION_ROLE_C2D SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(ROLE_CODE, :old.ROLE_CODE, 1, 0) = 1
|
||||
AND DECODE(ROLE_DESCRIPTION, :old.ROLE_DESCRIPTION, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE DW_REF_MAIN.INSTITUTION_ROLE SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(ROLE_CODE, :old.ROLE_CODE, 1, 0) = 1
|
||||
AND DECODE(ROLE_DESCRIPTION, :old.ROLE_DESCRIPTION, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE DW_REF_MAIN.INSTITUTION_ROLE_C2D SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(ROLE_CODE, :old.ROLE_CODE, 1, 0) = 1
|
||||
AND DECODE(ROLE_DESCRIPTION, :old.ROLE_DESCRIPTION, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO DW_REF_MAIN.INSTITUTION_ROLE(ROLE_CODE, ROLE_DESCRIPTION, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.ROLE_CODE, :new.ROLE_DESCRIPTION, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO DW_REF_MAIN.INSTITUTION_ROLE_C2D(ROLE_CODE, ROLE_DESCRIPTION, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.ROLE_CODE, :new.ROLE_DESCRIPTION, v_current_date, v_future_date, NULL);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,54 @@
|
||||
create or replace TRIGGER OU_REF.TMS_ACTIVITY_GROUPING_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.TMS_ACTIVITY_GROUPING
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO DW_REF_MAIN.TMS_ACTIVITY_GROUPING(GROUPING_PARAMETER, GROUPING_VALUE, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.GROUPING_PARAMETER, :new.GROUPING_VALUE, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_TMS_ACTIVITY_GROUPING(GROUPING_PARAMETER, GROUPING_VALUE, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.GROUPING_PARAMETER, :new.GROUPING_VALUE, v_current_date, v_future_date, NULL, -1);
|
||||
ELSIF DELETING THEN
|
||||
UPDATE DW_REF_MAIN.TMS_ACTIVITY_GROUPING SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(GROUPING_PARAMETER, :old.GROUPING_PARAMETER, 1, 0) = 1
|
||||
AND DECODE(GROUPING_VALUE, :old.GROUPING_VALUE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_TMS_ACTIVITY_GROUPING SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(GROUPING_PARAMETER, :old.GROUPING_PARAMETER, 1, 0) = 1
|
||||
AND DECODE(GROUPING_VALUE, :old.GROUPING_VALUE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE DW_REF_MAIN.TMS_ACTIVITY_GROUPING SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(GROUPING_PARAMETER, :old.GROUPING_PARAMETER, 1, 0) = 1
|
||||
AND DECODE(GROUPING_VALUE, :old.GROUPING_VALUE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
UPDATE REFERENCE.T_TMS_ACTIVITY_GROUPING SET
|
||||
A_VALID_TO = v_current_date
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(GROUPING_PARAMETER, :old.GROUPING_PARAMETER, 1, 0) = 1
|
||||
AND DECODE(GROUPING_VALUE, :old.GROUPING_VALUE, 1, 0) = 1
|
||||
AND A_VALID_TO = v_future_date
|
||||
;
|
||||
INSERT INTO DW_REF_MAIN.TMS_ACTIVITY_GROUPING(GROUPING_PARAMETER, GROUPING_VALUE, A_VALID_FROM, A_VALID_TO, A_KEY)
|
||||
VALUES (:new.GROUPING_PARAMETER, :new.GROUPING_VALUE, v_current_date, v_future_date, NULL);
|
||||
INSERT INTO REFERENCE.T_TMS_ACTIVITY_GROUPING(GROUPING_PARAMETER, GROUPING_VALUE, A_VALID_FROM, A_VALID_TO, A_KEY, A_MOPDB_LOAD_SET_FK)
|
||||
VALUES (:new.GROUPING_PARAMETER, :new.GROUPING_VALUE, v_current_date, v_future_date, NULL, -1);
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,42 @@
|
||||
create or replace TRIGGER OU_REF.TIME_TRANSFORMATION_H
|
||||
BEFORE INSERT OR UPDATE OR DELETE ON OU_REF.TIME_TRANSFORMATION
|
||||
REFERENCING NEW AS new OLD AS old
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_current_date DATE := SYSDATE;
|
||||
v_future_date DATE := TO_DATE('31/12/9999', 'DD/MM/YYYY');
|
||||
BEGIN
|
||||
IF INSERTING THEN
|
||||
INSERT INTO DW_REF_MAIN.TIME_TRANSFORMATION(YEAR_START, TIME_ZONE_START, CALENDAR_DATE_START, YEAR_END, TIME_ZONE_END, CALENDAR_DATE_END)
|
||||
VALUES (:new.YEAR_START, :new.TIME_ZONE_START, :new.CALENDAR_DATE_START, :new.YEAR_END, :new.TIME_ZONE_END, :new.CALENDAR_DATE_END);
|
||||
ELSIF DELETING THEN
|
||||
DELETE FROM DW_REF_MAIN.TIME_TRANSFORMATION
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(YEAR_START, :old.YEAR_START, 1, 0) = 1
|
||||
AND DECODE(TIME_ZONE_START, :old.TIME_ZONE_START, 1, 0) = 1
|
||||
AND DECODE(CALENDAR_DATE_START, :old.CALENDAR_DATE_START, 1, 0) = 1
|
||||
AND DECODE(YEAR_END, :old.YEAR_END, 1, 0) = 1
|
||||
AND DECODE(TIME_ZONE_END, :old.TIME_ZONE_END, 1, 0) = 1
|
||||
AND DECODE(CALENDAR_DATE_END, :old.CALENDAR_DATE_END, 1, 0) = 1
|
||||
;
|
||||
ELSIF UPDATING THEN
|
||||
UPDATE DW_REF_MAIN.TIME_TRANSFORMATION SET
|
||||
YEAR_START = :new.YEAR_START,
|
||||
TIME_ZONE_START = :new.TIME_ZONE_START,
|
||||
CALENDAR_DATE_START = :new.CALENDAR_DATE_START,
|
||||
YEAR_END = :new.YEAR_END,
|
||||
TIME_ZONE_END = :new.TIME_ZONE_END,
|
||||
CALENDAR_DATE_END = :new.CALENDAR_DATE_END
|
||||
WHERE
|
||||
1 = 1
|
||||
AND DECODE(YEAR_START, :old.YEAR_START, 1, 0) = 1
|
||||
AND DECODE(TIME_ZONE_START, :old.TIME_ZONE_START, 1, 0) = 1
|
||||
AND DECODE(CALENDAR_DATE_START, :old.CALENDAR_DATE_START, 1, 0) = 1
|
||||
AND DECODE(YEAR_END, :old.YEAR_END, 1, 0) = 1
|
||||
AND DECODE(TIME_ZONE_END, :old.TIME_ZONE_END, 1, 0) = 1
|
||||
AND DECODE(CALENDAR_DATE_END, :old.CALENDAR_DATE_END, 1, 0) = 1
|
||||
;
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
DECLARE
|
||||
v_drop_sql VARCHAR2(32767);
|
||||
BEGIN
|
||||
FOR i IN (
|
||||
SELECT
|
||||
'DROP TRIGGER DW_REF_MAIN.'||TRIGGER_NAME AS sql_str,
|
||||
'DW_REF_MAIN.AUTOKEY_'||TABLE_NAME AS trigger_name
|
||||
FROM DBA_TRIGGERS
|
||||
WHERE
|
||||
OWNER = 'DW_REF_MAIN'
|
||||
AND TRIGGER_NAME LIKE 'AUTOKEY%'
|
||||
AND TABLE_NAME IN (
|
||||
'ASSET_CODE_TYPE', 'ABS_TYPE', 'ALLOTMENT_METHOD', 'AREA_CODE_RIAD', 'ASSET_GROUP_DETAIL', 'ASSET_GROUP_MAPPING', 'ASSET_GROUP_TMS', 'ASSET_GROUP_TMS_OLD_NEW_MAP', 'ASSET_TYPE', 'ASSET_TYPE_TMS',
|
||||
'CAPITAL_KEY', 'COUNTRY', 'CSPP_BENCHMARK', 'CSPP_GROUP_MEMBERS', 'CSPP_GROUPS', 'CURRENCY', 'ELA_COUNTRY_CEILING', 'ELA_FUNDING_GAP', 'ELA_MFI_CEILING', 'ESA_95_INSTR_CLASS_CSDB',
|
||||
'ESA_95_SECTOR', 'ESA_2010_INSTR_CLASS_CSDB', 'ESA_2010_ISSUER_CLASS_CSDB', 'ESAST_SUB_SECTOR_RIAD', 'HAIRCUT_CATEGORIES', 'HAIRCUT_SCHEDULE', 'HOLIDAY', 'INSTITUTION_C2D', 'INSTITUTION_CODE_TYPE', 'INSTITUTION_ECONOMIC_ACTIVITY',
|
||||
'INSTITUTION_IDENTIFIER_TYPE', 'INSTITUTION_RAT_OUTLOOK_VALUE', 'INSTITUTION_RAT_WATCH_VALUE', 'INSTITUTION_ROLE', 'INSTITUTION_SUBROLE', 'ISSUER_DEBTOR_GUARANTOR_GROUP', 'LIMIT_BREACH_CAUSE', 'LIMIT_TYPE', 'LIMIT_VIOLATION_TYPE', 'MAP_COUPON_FREQ',
|
||||
'MAP_COUPON_FREQ_RAR', 'MAP_COUPON_TYPE', 'MAP_COUPON_TYPE_RAR', 'NACE2_INDUSTRY_CLASS_CSDB', 'OPERATION_NAME', 'OPERATION_PROCEDURE', 'OPERATION_PUBLIC', 'OPERATION_TYPE', 'OWN_USE', 'PRICE_TYPE_MAP',
|
||||
'PRICE_TYPE_RAR', 'PSE_TYPE', 'QUOT_BASIS_MAP', 'RATING', 'RATING_ACTION', 'RATING_PD', 'RATING_PRIORITY', 'RATING_SOURCE', 'RATING_TYPE', 'REDEMPTION_FREQUENCY_CSDB',
|
||||
'REDEMPTION_TYPE_CSDB', 'RIC_CODE_CREATION_RULE', 'TMS_ACTIVITY_GROUPING', 'TMS_POSITION_CONFIG', 'MARKET_COUNTRIES', 'MEASUREMENT_UNITS', 'NCB', 'PORTFOLIO', 'PP_BUCKET', 'PP_CASH_FLOW_TYPE',
|
||||
'PP_METHOD', 'PP_PORTF_BNCHMK_MAP', 'SCENARIOS', 'INSTITUTION_ROLE_C2D'
|
||||
)
|
||||
ORDER BY TABLE_NAME
|
||||
) LOOP
|
||||
v_drop_sql := i.sql_str;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(i.trigger_name);
|
||||
EXECUTE IMMEDIATE v_drop_sql;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE(v_drop_sql||'
|
||||
-- /
|
||||
-- ');
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,44 @@
|
||||
ALTER TABLE OU_REF.QUOT_BASIS_MAP DROP CONSTRAINT CHECK_ANALYZED;
|
||||
|
||||
REVOKE SELECT ANY TABLE ON SCHEMA DW_REF_MAIN FROM OU_REF;
|
||||
REVOKE INSERT ANY TABLE ON SCHEMA DW_REF_MAIN FROM OU_REF;
|
||||
REVOKE UPDATE ANY TABLE ON SCHEMA DW_REF_MAIN FROM OU_REF;
|
||||
REVOKE DELETE ANY TABLE ON SCHEMA DW_REF_MAIN FROM OU_REF;
|
||||
REVOKE SELECT ANY TABLE ON SCHEMA REFERENCE FROM OU_REF;
|
||||
REVOKE INSERT ANY TABLE ON SCHEMA REFERENCE FROM OU_REF;
|
||||
REVOKE UPDATE ANY TABLE ON SCHEMA REFERENCE FROM OU_REF;
|
||||
REVOKE DELETE ANY TABLE ON SCHEMA REFERENCE FROM OU_REF;
|
||||
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
DECLARE
|
||||
v_drop_sql VARCHAR2(32767);
|
||||
BEGIN
|
||||
FOR i IN (
|
||||
SELECT
|
||||
'DROP TRIGGER OU_REF.'||TRIGGER_NAME AS sql_str,
|
||||
'DW_REF_MAIN.'||TABLE_NAME||'_H' AS trigger_name
|
||||
FROM DBA_TRIGGERS
|
||||
WHERE
|
||||
OWNER = 'OU_REF'
|
||||
AND TRIGGER_NAME LIKE '%_H'
|
||||
) LOOP
|
||||
v_drop_sql := i.sql_str;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(i.trigger_name);
|
||||
EXECUTE IMMEDIATE v_drop_sql;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE(v_drop_sql||'
|
||||
--/
|
||||
-- ');
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
DECLARE
|
||||
v_drop_sql VARCHAR2(32767);
|
||||
BEGIN
|
||||
FOR i IN (
|
||||
SELECT
|
||||
'DROP TRIGGER REFERENCE.'||TRIGGER_NAME AS sql_str,
|
||||
'REFERENCE.AUTOKEY_'||TABLE_NAME AS trigger_name
|
||||
FROM DBA_TRIGGERS
|
||||
WHERE
|
||||
OWNER = 'REFERENCE'
|
||||
AND TRIGGER_NAME LIKE 'AUTOKEY%'
|
||||
AND TABLE_NAME IN (
|
||||
'T_BALANCE_SHEET_STRUCTURE', 'T_CAPITAL_KEY', 'T_COUNTRY', 'T_CSDB_RATING_ACTION', 'T_CURRENCY', 'T_TMS_ACTIVITY_GROUPING'
|
||||
)
|
||||
) LOOP
|
||||
v_drop_sql := i.sql_str;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE(i.trigger_name);
|
||||
EXECUTE IMMEDIATE v_drop_sql;
|
||||
|
||||
-- DBMS_OUTPUT.PUT_LINE(v_drop_sql||'
|
||||
-- /
|
||||
-- ');
|
||||
|
||||
END LOOP;
|
||||
|
||||
END;
|
||||
/
|
||||
42
MARS_Packages/REL01/MARS-723/install_mars723.sql
Normal file
42
MARS_Packages/REL01/MARS-723/install_mars723.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
WHENEVER SQLERROR EXIT FAILURE
|
||||
SET SERVEROUTPUT ON
|
||||
SET TIMING ON
|
||||
SET ECHO ON
|
||||
SET HEADING OFF
|
||||
SET FEEDBACK ON
|
||||
SET VERIFY OFF
|
||||
|
||||
var filename VARCHAR2(100)
|
||||
BEGIN
|
||||
SELECT 'INSTALL_MARS_723_' || SUBSTR(PDB_NAME, (INSTR(PDB_NAME,'_',1)+1), (LENGTH(PDB_NAME)-INSTR(PDB_NAME,'_',1))) || '_' ||TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS')||'.log' INTO :filename from DBA_PDBS;
|
||||
END;
|
||||
/
|
||||
column filename new_value _filename
|
||||
select :filename filename from dual;
|
||||
spool &_filename
|
||||
|
||||
prompt ##### started at time #####
|
||||
select systimestamp from dual;
|
||||
prompt ##### database name #####
|
||||
SELECT SUBSTR(PDB_NAME, (INSTR(PDB_NAME,'_',1)+1), (LENGTH(PDB_NAME)-INSTR(PDB_NAME,'_',1))) AS PDB_NAME FROM DBA_PDBS;
|
||||
|
||||
|
||||
@@01_MARS_723_install_DW_REF_MAIN_CREATE_AUTOKEY_TRIGGER.sql
|
||||
@@02_MARS_723_install_REFERENCE_CREATE_AUTOKEY_TRIGGER.sql
|
||||
@@03_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_DW_REF_MAIN.sql
|
||||
@@05_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_BALANCE_SHEET_STRUCTURE_H.sql
|
||||
@@06_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_CAPITAL_KEY_H.sql
|
||||
@@07_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_COUNTRY_H.sql
|
||||
@@08_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_CSDB_RATING_ACTION_H.sql
|
||||
@@09_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_CURRENCY_H.sql
|
||||
@@10_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_INSTITUTION_ROLE_H.sql
|
||||
@@11_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_TMS_ACTIVITY_GROUPING_H.sql
|
||||
@@12_MARS_723_install_OU_REF_CREATE_HISTORY_TRIGGER_TIME_TRANSFORMATION_H.sql
|
||||
|
||||
SET ECHO OFF
|
||||
|
||||
prompt ##### completed at time #####
|
||||
select systimestamp from dual;
|
||||
|
||||
SPOOL OFF
|
||||
EXIT
|
||||
35
MARS_Packages/REL01/MARS-723/rollback_mars723.sql
Normal file
35
MARS_Packages/REL01/MARS-723/rollback_mars723.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
WHENEVER SQLERROR EXIT FAILURE
|
||||
SET SERVEROUTPUT ON
|
||||
SET TIMING ON
|
||||
SET ECHO ON
|
||||
SET HEADING OFF
|
||||
SET FEEDBACK ON
|
||||
SET VERIFY OFF
|
||||
|
||||
var filename VARCHAR2(100)
|
||||
BEGIN
|
||||
SELECT 'ROLLBACK_MARS_723_' || SUBSTR(PDB_NAME, (INSTR(PDB_NAME,'_',1)+1), (LENGTH(PDB_NAME)-INSTR(PDB_NAME,'_',1))) || '_' ||TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS')||'.log' INTO :filename from DBA_PDBS;
|
||||
END;
|
||||
/
|
||||
column filename new_value _filename
|
||||
select :filename filename from dual;
|
||||
spool &_filename
|
||||
|
||||
prompt ##### started at time #####
|
||||
select systimestamp from dual;
|
||||
prompt ##### database name #####
|
||||
SELECT SUBSTR(PDB_NAME, (INSTR(PDB_NAME,'_',1)+1), (LENGTH(PDB_NAME)-INSTR(PDB_NAME,'_',1))) AS PDB_NAME FROM DBA_PDBS;
|
||||
|
||||
|
||||
@@91_MARS_723_rollback_DW_REF_MAIN_AUTOKEY_TRIGGER.sql
|
||||
@@91_MARS_723_rollback_OU_REF_HISTORY_TRIGGERS.sql
|
||||
@@91_MARS_723_rollback_REFERENCE_AUTOKEY_TRIGGER.sql
|
||||
|
||||
|
||||
SET ECHO OFF
|
||||
|
||||
prompt ##### completed at time #####
|
||||
select systimestamp from dual;
|
||||
|
||||
SPOOL OFF
|
||||
EXIT
|
||||
Reference in New Issue
Block a user