DECLARE CURSOR C1 IS SELECT ID FROM TABLE_NAME_1 WHERE COLUMN IN (''); CURSOR C2 IS SELECT ID FROM TABLE_NAME_2 WHERE COLUMN IN (''); CURSOR C3 (CP_TABLE_01_ID NUMBER,CP_TABLE_02_ID NUMBER) IS SELECT COUNT(*) AS COUNT_UP FROM TABLE_NAME_3 WHERE COLUMN_CONDITION_01=CP_TABLE_02_ID AND COLUMN_CONDITION_02=CP_TABLE_01_ID; COUNT_UP NUMBER; BEGIN FOR R1 IN C1 LOOP FOR R2 IN C2 LOOP OPEN C3(R1.ID,R2.ID); FETCH C3 INTO COUNT_UP; CLOSE C3; IF (COUNT_UP=0) THEN INSERT INTO TABL...
REF CURSOR WILL BE DYNAMICALLY OPENS OR OPEN BASED ON A LOGIC. DECLARE TYPE C1 IS REF CURSOR ; CURSOR C IS SELECT * FROM DUAL; REF_CURSOR RC; BEGIN IF (TO_CHAR(SYSDATE, 'DD' ) = 30 ) THEN OPEN REF_CURSOR FOR 'SELECT * FROM TABLE1' ; ELSIF ( TO_CHAR(SYSDATE, 'DD' ) = 29 ) THEN OPEN REF_CURSOR FOR SELECT * FROM TABLE2; ELSE OPEN REF_CURSOR FOR SELECT * FROM DUAL; END IF ; OPEN C; END ;
Comments
Post a Comment