CREATE OR REPLACE PROCEDURE LOAD_DATA AS /* replace the above line with DECLARE to have anonymous block */ A_VAR VARCHAR2(30) := 'A Variable'; CURSOR CUR_ST IS SELECT ST_ID, DESCRIPTION, ST_TYPE from SAMPLE_TABLE; /* SQL Query for defining cursor */ BEGIN FOR CUR IN CUR_ST LOOP /* Looping... add main logic here */ IF CUR.ST_TYPE = '1' THEN INSERT INTO OTHER_TABLE (OT_ID, DESCRIPTION) VALUES(CUR.ST_ID, CUR.DESCRIPTION); ELSE A_VAR := 'SKIPPING'; END; END LOOP; COMMIT; EXCEPTION /* Do error handling here */ /* Remove the EXCEPTION block for exceptions to show up outside of procedure */ WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No data found!'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error occurred!'); ROLLBACK; END LOAD_DATA;
DBMS_OUTPUT.PUT_LINE can be used to write to console. It works if server output is on:
set serveroutput on size 30000;