Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

SHOW PROCEDURE SP.

TS_CONTROLPROC

/* Description : Wrapper Store procedure to load the data for Team-Selling tables i.e RPM_TBLS.FAM_EMPLOYEE_RECOVER & RPM_TBLS.FAM_ALL_RECOVER. Please check the below index for step level Description Step 1 : Creating a volatile table to generate RANKS depending on unprocessed dates available in APP_CONTROL table . Ex : Consider we have 3 dates in APP_CONTROL like '01/01/2012' , '01/02/2012' & '01/03/2012' Then the voaltile table will have 3 records as below DATE RANK ---------------'01/01/2012' 1 '01/02/2012' 2 '01/03/2012' 3 Step 2 : Processing all dates data by using a while loop from minimum rank value to maximum rank value. Step 3 : Creating a table TEMP_CONTROL and populating this table by taking all stores for the date depending on the rank that is processed. Step 4 :Triiger the Child stored procedure SP.DATALOAD_STAGE. Step 5: Triiger the Child stored procedure SP.BASIC_COMPONENT_LAT . Step 6: Drop the temporary tables created during processing. */
REPLACE PROCEDURE SP.TS_CONTROLPROC() BEGIN DECLARE L_APP_NAME VARCHAR(20); DECLARE L_LOG_ACTION VARCHAR(100); DECLARE STORE_COUNT INT; DECLARE MAX_RNK INT; DECLARE RNKVAL INT; DECLARE COUNT_TABLE INT; DECLARE BUSINESSDT DATE; DECLARE BUSINESSDT_CHAR CHAR(10); SET RNKVAL=1; SET L_APP_NAME='TEAM SELLING'; SET L_LOG_ACTION = L_APP_NAME || ':' || 'CONTROLPROC';

--------------------------------------------------------------CREATE TABLE DT_RNK_CNTRL

STEP 1

---------------------------------------------------

(BUSINESS_DT DATE FORMAT 'MM/DD/YYYY', RNK INTEGER) PRIMARY INDEX (BUSINESS_DT); INSERT INTO DT_RNK_CNTRL SELECT BUSINESS_DT,ROW_NUMBER() OVER (ORDER BY BUSINESS_DT ASC) RNK FROM CHI01_TBLS.APP_CONTROL WHERE PROCESSED_FLAG='N' AND APP_ID=2 and org_node_id like '001.005%' GROUP BY 1; SELECT MAX(RNK) INTO MAX_RNK FROM DT_RNK_CNTRL; DELETE STAGE_TBLS.TEMP_CONTROL; INSERT INTO STAGE_TBLS.TEMP_CONTROL SELECT * FROM CHI01_TBLS.APP_CONTROL WHERE BUSINESS_DT = (SELECT BUSINESS_DT FROM DT_RNK_CNTRL WHERE RNK= RNKVAL) AND PROCESSED_FLAG='N' AND APP_ID=2 and org_node_id like '001.005%'; COLLECT STATS ON STAGE_TBLS.TEMP_CONTROL ; SELECT COUNT(1) INTO STORE_COUNT FROM STAGE_TBLS.TEMP_CONTROL; SELECT DISTINCT BUSINESS_DT INTO BUSINESSDT FROM STAGE_TBLS.TEMP_CONTROL; SET BUSINESSDT_CHAR=CAST(BUSINESSDT AS FORMAT 'MM/DD/YYYY');

-------------------------------------------------------------

STEP 4 -----------------------------------------------------

IF STORE_COUNT =0 then call SP.logmsg( L_LOG_ACTION , 'No Stores to be processed' , 'I'); else call SP.logmsg( L_LOG_ACTION , 'STAGE Data Load getting started for ' ||STORE_COUNT|| ' Stores and for '||BUSINESSDT_CHAR , 'I'); end If; DROP TABLE DT_RNK_CNTRL; END;

You might also like