Mega Code Archive

 
Categories / Oracle PLSQL / PL SQL
 

Use EXECUTE IMMEDIATE to call procedure and save the returning value

SQL> SQL> CREATE OR REPLACE PROCEDURE CallProc1(p1 IN VARCHAR2 := NULL) AS   2  BEGIN   3    DBMS_OUTPUT.PUT_LINE('CallProc1 called with ' || p1);   4  END CallProc1;   5  / Procedure created. SQL> SQL> DECLARE   2    myResult VARCHAR2(50);   3  BEGIN   4    EXECUTE IMMEDIATE 'CALL CallProc1(''Hello from PL/SQL'')';   5    EXECUTE IMMEDIATE 'CALL CallFunc(''Hello from PL/SQL'') INTO :myResult'   6    USING OUT myResult;   7  END;   8  / CallProc1 called with Hello from PL/SQL CallFunc called with Hello from PL/SQL PL/SQL procedure successfully completed. SQL>