The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE DELETE_STG
IS
BEGIN
DELETE FII_AP_INV_ON_HOLD_FSTG
WHERE COLLECTION_STATUS = 'LOCAL READY'OR ( COLLECTION_STATUS = 'RATE NOT AVAILABLE' OR COLLECTION_STATUS = 'INVALID CURRENCY')
AND INSTANCE = (SELECT INSTANCE_CODE
FROM EDW_LOCAL_INSTANCE);
PROCEDURE INSERT_MISSING_RATES_IN_TMP
IS
BEGIN
-- --------------------------------------------------------------------------------------------------
-- The variable g_acct_or_inv_date is added in the below mentioned select statement.
-- The profile option stored in the global variable g_acct_or_inv_date
-- will be stored in the column Primary_Key5 . Modified for Currency Conversion Date Enhancement,25-APR-03
-----------------------------------------------------------------------------------------------------
INSERT INTO FII_AP_TMP_INVH_PK( Primary_Key1, Primary_Key2,Primary_key5)
SELECT
TO_NUMBER(SUBSTR (INV_ON_HOLD_PK, 1, INSTR(INV_ON_HOLD_PK, '-' )-1)),
TO_NUMBER(SUBSTR (INV_ON_HOLD_PK, INSTR(INV_ON_HOLD_PK, '-')+1,INSTR(INV_ON_HOLD_PK,'-',1,2)-(INSTR(INV_ON_HOLD_PK,'-')+1))),
g_acct_or_inv_date
FROM FII_AP_INV_ON_HOLD_FSTG foh
WHERE
foh.COLLECTION_STATUS = 'RATE NOT AVAILABLE'
OR
foh.COLLECTION_STATUS = 'INVALID CURRENCY';
edw_log.put_line('INSERTING ' || to_char(sql%rowcount) || ' rows from staging table');
SELECT instance_code
INTO l_instance1
FROM edw_local_instance;
SELECT instance_code
INTO l_instance2
FROM edw_local_instance@edw_apps_to_wh;
UPDATE FII_AP_INV_ON_HOLD_FSTG
SET COLLECTION_STATUS = 'READY'
WHERE COLLECTION_STATUS = 'LOCAL READY'
AND INSTANCE = (SELECT INSTANCE_CODE
FROM EDW_LOCAL_INSTANCE);
Insert Into FII_AP_INV_ON_HOLD_FSTG(
CCID,
CREATION_DATE,
DUNS_FK,
EMPLOYEE_FK,
EXCHANGE_DATE,
EXCHANGE_RATE,
EXCHANGE_RATE_TYPE,
GEOGRAPHY_FK,
GL_ACCT10_FK,
GL_ACCT1_FK,
GL_ACCT2_FK,
GL_ACCT3_FK,
GL_ACCT4_FK,
GL_ACCT5_FK,
GL_ACCT6_FK,
GL_ACCT7_FK,
GL_ACCT8_FK,
GL_ACCT9_FK,
INSTANCE,
INSTANCE_FK,
INV_AMT_ON_HOLD_B,
INV_AMT_ON_HOLD_G,
INV_AMT_ON_HOLD_T,
INV_CURRENCY_FK,
INV_DATE_FK,
INV_FK,
INV_NUM,
INV_ON_HOLD_COUNT,
INV_ON_HOLD_PK,
INV_SOURCE_FK,
INV_TYPE,
LAST_UPDATE_DATE,
ORG_FK,
PAYMENT_TERM_FK,
SIC_CODE_FK,
SOB_FK,
SUPPLIER_FK,
USER_ATTRIBUTE1,
USER_ATTRIBUTE10,
USER_ATTRIBUTE2,
USER_ATTRIBUTE3,
USER_ATTRIBUTE4,
USER_ATTRIBUTE5,
USER_ATTRIBUTE6,
USER_ATTRIBUTE7,
USER_ATTRIBUTE8,
USER_ATTRIBUTE9,
USER_FK1,
USER_FK2,
USER_FK3,
USER_FK4,
USER_FK5,
USER_MEASURE1,
USER_MEASURE2,
USER_MEASURE3,
USER_MEASURE4,
USER_MEASURE5,
OPERATION_CODE,
COLLECTION_STATUS,
FROM_CURRENCY)
select
CCID,
DECODE(g_acct_or_inv_date,1,GL_DATE,INVOICE_DATE),
NVL(DUNS_FK,'NA_EDW'),
NVL(EMPLOYEE_FK,'NA_EDW'),
EXCHANGE_DATE,
EXCHANGE_RATE,
EXCHANGE_RATE_TYPE,
NVL(GEOGRAPHY_FK,'NA_EDW'),
NVL(GL_ACCT10_FK,'NA_EDW'),
NVL(GL_ACCT1_FK,'NA_EDW'),
NVL(GL_ACCT2_FK,'NA_EDW'),
NVL(GL_ACCT3_FK,'NA_EDW'),
NVL(GL_ACCT4_FK,'NA_EDW'),
NVL(GL_ACCT5_FK,'NA_EDW'),
NVL(GL_ACCT6_FK,'NA_EDW'),
NVL(GL_ACCT7_FK,'NA_EDW'),
NVL(GL_ACCT8_FK,'NA_EDW'),
NVL(GL_ACCT9_FK,'NA_EDW'),
INSTANCE,
NVL(INSTANCE_FK,'NA_EDW'),
INV_AMT_ON_HOLD_B,
round((INV_AMT_ON_HOLD_B*GLOBAL_CURRENCY_RATE)/l_mau)*l_mau,
INV_AMT_ON_HOLD_T,
NVL(INV_CURRENCY_FK,'NA_EDW'),
NVL(INV_DATE_FK,'NA_EDW'),
NVL(INV_FK,'NA_EDW'),
INV_NUM,
INV_ON_HOLD_COUNT,
INV_ON_HOLD_PK,
NVL(INV_SOURCE_FK,'NA_EDW'),
INV_TYPE,
LAST_UPDATE_DATE,
NVL(ORG_FK,'NA_EDW'),
NVL(PAYMENT_TERM_FK,'NA_EDW'),
NVL(SIC_CODE_FK,'NA_EDW'),
NVL(SOB_FK,'NA_EDW'),
NVL(SUPPLIER_FK,'NA_EDW'),
USER_ATTRIBUTE1,
USER_ATTRIBUTE10,
USER_ATTRIBUTE2,
USER_ATTRIBUTE3,
USER_ATTRIBUTE4,
USER_ATTRIBUTE5,
USER_ATTRIBUTE6,
USER_ATTRIBUTE7,
USER_ATTRIBUTE8,
USER_ATTRIBUTE9,
NVL(USER_FK1,'NA_EDW'),
NVL(USER_FK2,'NA_EDW'),
NVL(USER_FK3,'NA_EDW'),
NVL(USER_FK4,'NA_EDW'),
NVL(USER_FK5,'NA_EDW'),
USER_MEASURE1,
USER_MEASURE2,
USER_MEASURE3,
USER_MEASURE4,
USER_MEASURE5,
NULL, -- OPERATION_CODE
decode(GLOBAL_CURRENCY_RATE,
NULL, 'RATE NOT AVAILABLE',
-1, 'RATE NOT AVAILABLE',
-2, 'RATE NOT AVAILABLE',
'LOCAL READY'),
FROM_CURRENCY
from FII_AP_INV_ON_HOLD_FCV;
Insert Into FII_AP_INV_ON_HOLD_FSTG@EDW_APPS_TO_WH(
CCID,
CREATION_DATE,
DUNS_FK,
EMPLOYEE_FK,
EXCHANGE_DATE,
EXCHANGE_RATE,
EXCHANGE_RATE_TYPE,
GEOGRAPHY_FK,
GL_ACCT10_FK,
GL_ACCT1_FK,
GL_ACCT2_FK,
GL_ACCT3_FK,
GL_ACCT4_FK,
GL_ACCT5_FK,
GL_ACCT6_FK,
GL_ACCT7_FK,
GL_ACCT8_FK,
GL_ACCT9_FK,
INSTANCE,
INSTANCE_FK,
INV_AMT_ON_HOLD_B,
INV_AMT_ON_HOLD_G,
INV_AMT_ON_HOLD_T,
INV_CURRENCY_FK,
INV_DATE_FK,
INV_FK,
INV_NUM,
INV_ON_HOLD_COUNT,
INV_ON_HOLD_PK,
INV_SOURCE_FK,
INV_TYPE,
LAST_UPDATE_DATE,
ORG_FK,
PAYMENT_TERM_FK,
SIC_CODE_FK,
SOB_FK,
SUPPLIER_FK,
USER_ATTRIBUTE1,
USER_ATTRIBUTE10,
USER_ATTRIBUTE2,
USER_ATTRIBUTE3,
USER_ATTRIBUTE4,
USER_ATTRIBUTE5,
USER_ATTRIBUTE6,
USER_ATTRIBUTE7,
USER_ATTRIBUTE8,
USER_ATTRIBUTE9,
USER_FK1,
USER_FK2,
USER_FK3,
USER_FK4,
USER_FK5,
USER_MEASURE1,
USER_MEASURE2,
USER_MEASURE3,
USER_MEASURE4,
USER_MEASURE5,
OPERATION_CODE,
COLLECTION_STATUS)
select
CCID,
CREATION_DATE,
NVL(DUNS_FK,'NA_EDW'),
NVL(EMPLOYEE_FK,'NA_EDW'),
EXCHANGE_DATE,
EXCHANGE_RATE,
substrb(EXCHANGE_RATE_TYPE,1,30),
NVL(GEOGRAPHY_FK,'NA_EDW'),
NVL(GL_ACCT10_FK,'NA_EDW'),
NVL(GL_ACCT1_FK,'NA_EDW'),
NVL(GL_ACCT2_FK,'NA_EDW'),
NVL(GL_ACCT3_FK,'NA_EDW'),
NVL(GL_ACCT4_FK,'NA_EDW'),
NVL(GL_ACCT5_FK,'NA_EDW'),
NVL(GL_ACCT6_FK,'NA_EDW'),
NVL(GL_ACCT7_FK,'NA_EDW'),
NVL(GL_ACCT8_FK,'NA_EDW'),
NVL(GL_ACCT9_FK,'NA_EDW'),
substrb(INSTANCE,1,40),
NVL(INSTANCE_FK,'NA_EDW'),
INV_AMT_ON_HOLD_B,
INV_AMT_ON_HOLD_G,
INV_AMT_ON_HOLD_T,
NVL(INV_CURRENCY_FK,'NA_EDW'),
NVL(INV_DATE_FK,'NA_EDW'),
NVL(INV_FK,'NA_EDW'),
substrb(INV_NUM,1,50),
INV_ON_HOLD_COUNT,
substrb(INV_ON_HOLD_PK,1,120),
NVL(INV_SOURCE_FK,'NA_EDW'),
substrb(INV_TYPE,1,25),
LAST_UPDATE_DATE,
NVL(ORG_FK,'NA_EDW'),
NVL(PAYMENT_TERM_FK,'NA_EDW'),
NVL(SIC_CODE_FK,'NA_EDW'),
NVL(SOB_FK,'NA_EDW'),
NVL(SUPPLIER_FK,'NA_EDW'),
USER_ATTRIBUTE1,
USER_ATTRIBUTE10,
USER_ATTRIBUTE2,
USER_ATTRIBUTE3,
USER_ATTRIBUTE4,
USER_ATTRIBUTE5,
USER_ATTRIBUTE6,
USER_ATTRIBUTE7,
USER_ATTRIBUTE8,
USER_ATTRIBUTE9,
NVL(USER_FK1,'NA_EDW'),
NVL(USER_FK2,'NA_EDW'),
NVL(USER_FK3,'NA_EDW'),
NVL(USER_FK4,'NA_EDW'),
NVL(USER_FK5,'NA_EDW'),
USER_MEASURE1,
USER_MEASURE2,
USER_MEASURE3,
USER_MEASURE4,
USER_MEASURE5,
NULL, -- OPERATION_CODE
'READY'
from FII_AP_INV_ON_HOLD_FSTG
WHERE collection_status = 'LOCAL READY';
l_stmt := ' INSERT INTO fii_ap_tmp_invh_pk( Primary_Key1,Primary_Key5 )
SELECT ai.invoice_id,
:g_acct_or_inv_date
FROM ap_invoices_all ai,
ap_holds_all ah
WHERE ai.cancelled_date IS NULL
AND ai.invoice_id = ah.invoice_id
AND ai.org_id = ah.org_id
AND ah.hold_lookup_code IS NOT NULL
AND ah.release_lookup_code IS NULL
AND ai.last_update_date BETWEEN :g_push_date_range1 and :g_push_date_range2'||l_er_stmt||'
UNION
SELECT ai.invoice_id,
:g_acct_or_inv_date
FROM ap_invoices_all ai,
ap_holds_all ah
WHERE ai.cancelled_date IS NULL
AND ai.invoice_id = ah.invoice_id
AND ai.org_id = ah.org_id
AND ah.hold_lookup_code IS NOT NULL
AND ah.release_lookup_code IS NULL
AND ah.last_update_date BETWEEN :g_push_date_range1 and :g_push_date_range2'||l_er_stmt||'
UNION
SELECT ai.invoice_id,
:g_acct_or_inv_date
FROM ap_invoices_all ai,
ap_payment_schedules_all aps
WHERE ai.cancelled_date IS NULL
AND ai.invoice_id = aps.invoice_id
AND ai.org_id = aps.org_id
AND NVL(aps.hold_flag, ''N'') = ''Y''
AND ai.last_update_date BETWEEN :g_push_date_range1 and :g_push_date_range2'||l_er_stmt||'
UNION
SELECT ai.invoice_id,
:g_acct_or_inv_date
FROM ap_invoices_all ai,
ap_payment_schedules_all aps
WHERE ai.cancelled_date IS NULL
AND ai.invoice_id = aps.invoice_id
AND ai.org_id = aps.org_id
AND NVL(aps.hold_flag, ''N'') = ''Y''
AND aps.last_update_date BETWEEN :g_push_date_range1 and :g_push_date_range2'||l_er_stmt;
cursor c1 is select DISTINCT FROM_CURRENCY,
CREATION_DATE CONVERSION_DATE,
COLLECTION_STATUS
From FII_AP_INV_ON_HOLD_FSTG
where (COLLECTION_STATUS='RATE NOT AVAILABLE'
OR COLLECTION_STATUS = 'INVALID CURRENCY')
AND trunc(CREATION_DATE) <= trunc(sysdate);
cursor c2 is select DISTINCT FROM_CURRENCY,
CREATION_DATE CONVERSION_DATE,
COLLECTION_STATUS
From FII_AP_INV_ON_HOLD_FSTG
where (COLLECTION_STATUS='RATE NOT AVAILABLE'
OR COLLECTION_STATUS = 'INVALID CURRENCY' )
AND trunc(CREATION_DATE) > trunc(sysdate);
execute immediate 'select count(*) from FII_AP_INVH_MSNG_RATES' into l_count;
insert into fii_ap_invh_msng_rates(Primary_Key1,
Primary_key2,
Primary_key3)
select Primary_key1,
Primary_key2,
Primary_Key5
from fii_ap_tmp_invh_pk;
Insert into fii_ap_tmp_invh_pk(Primary_Key1,
Primary_Key2,
Primary_Key5)
select Primary_Key1,
Primary_Key2,
Primary_Key3
from fii_ap_invh_msng_rates;
DELETE_STG;
select count(*) into rows1 from FII_AP_INV_ON_HOLD_FSTG;
edw_log.put_line('Inserted '||nvl(g_row_count,0)||
' rows into the local staging table');
select count(*) into rows from fii_ap_tmp_invh_pk ;
INSERT_MISSING_RATES_IN_TMP;
select /*+ FULL(SP) CACHE(SP) */
warehouse_currency_code into l_to_currency
from edw_local_system_parameters SP;
DELETE_STG;
delete from fii_ap_invh_msng_rates;
insert into fii_ap_invh_msng_rates(Primary_Key1,
Primary_Key2,
Primary_Key3)
select Primary_Key1,
Primary_Key2,
Primary_Key5
from fii_ap_tmp_invh_pk;
edw_log.put_line('Inserted '||nvl(g_row_count,0)||
' rows into the staging table');
edw_log.put_line('Inserting into local staging have failed');