Mega Code Archive

 
Categories / Oracle PLSQL / Stored Procedure Function
 

This script demonstrates the use of the CALL statement

SQL> SQL> CREATE OR REPLACE PROCEDURE myProcedure(p1 IN VARCHAR2 := NULL) AS   2   BEGIN   3     DBMS_OUTPUT.PUT_LINE('myProcedure called with ' || p1);   4   END myProcedure;   5   / Procedure created. SQL> SQL> SQL> SQL> SQL> CREATE OR REPLACE PROCEDURE myProcedure2(p1 IN OUT VARCHAR2) AS   2   BEGIN   3     DBMS_OUTPUT.PUT_LINE('myProcedure2 called with ' || p1);   4     p1 := p1 || ' returned!';   5   END myProcedure2;   6   / Procedure created. SQL> SQL> SQL> CREATE OR REPLACE FUNCTION CallFunc(p1 IN VARCHAR2)   2     RETURN VARCHAR2 AS   3   BEGIN   4     DBMS_OUTPUT.PUT_LINE('CallFunc called with ' || p1);   5     RETURN p1;   6   END CallFunc;   7   / Function created. SQL> SQL> SQL> SQL> SQL> set serveroutput on SQL> SQL> -- Some valid calls direct from SQL. SQL> CALL myProcedure('Hello!'); myProcedure called with Hello! Call completed. SQL> SQL> Call completed.   2 SQL> CALL myProcedure(); myProcedure called with Call completed. SQL> SQL> Call completed.   2 SQL> VARIABLE v_Output VARCHAR2(50); SQL> SQL> SQL> Call completed.   2 SQL> PRINT v_Output V_OUTPUT -------------------------------------------------------------------------------- SQL> SQL> CALL myProcedure2(:v_Output); myProcedure2 called with Call completed. SQL> SQL> Call completed.   2 SQL> PRINT v_Output V_OUTPUT --------------------------------------------------------------------------------  returned! SQL> SQL>