Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Function Procedure Packages
 

IN OUT NOCOPY

SQL> SQL> CREATE OR REPLACE PROCEDURE very_confusing (   2     arg1   IN              VARCHAR2   3   , arg2   IN OUT          VARCHAR2   4   , arg3   IN OUT NOCOPY   VARCHAR2   5  )   6  IS   7  BEGIN   8     arg2 := 'Second value';   9     DBMS_OUTPUT.put_line ('arg2 assigned, arg1 = ' || arg1);  10     arg3 := 'Third value';  11     DBMS_OUTPUT.put_line ('arg3 assigned, arg1 = ' || arg1);  12  END;  13  / Procedure created. SQL> SQL> DECLARE   2     str   VARCHAR2 (100) := 'First value';   3  BEGIN   4     DBMS_OUTPUT.put_line ('str before = ' || str);   5     very_confusing (str, str, str);   6     DBMS_OUTPUT.put_line ('str after = ' || str);   7  END;   8  / PL/SQL procedure successfully completed. SQL>