Using dynamic SQL in PL/SQL

เวลาที่ต้องการใช้คำสั่ง SQL ใน PL/SQL แบบ Dynamic นั้นสามารถทำได้โดยใช้คำสั่ง

EXECUTE IMMEDIATE

ดังเช่นตัวอย่างนี้

CREATE OR REPLACE PROCEDURE DELETE_DATA IS
    V_DEL   NUMBER := 0;
    V_I     NUMBER := 0;
    V_SQL   VARCHAR(1000);
    
BEGIN
    --Create sql statement
    V_SQL := 'DELETE FROM TMP WHERE ID = :1';
    
    --Loop for delete data
    FOR V_I IN 1..5 LOOP
        EXECUTE IMMEDIATE V_SQL USING V_I;
        V_DEL := V_DEL+SQL%ROWCOUNT;
    END LOOP;
    
    DBMS_OUTPUT.PUT_LINE('Delete1 : '||V_DEL||' Record(s)');    
    
    ROLLBACK;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        ROLLBACK;
        NULL;
    WHEN OTHERS THEN
        ROLLBACK;
        RAISE;
END DELETE_DATA;
/
  1. No comments yet.

  1. No trackbacks yet.