This section describes how to execute anonymous blocks in dynamic statements. Append IN and OUT behind the EXECUTE IMMEDIATE...USING statement to input and output parameters.
Figure 1 shows the syntax diagram.
Figure 2 shows the syntax diagram for using_clause.
The above syntax diagram is explained as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | --Create the stored procedure dynamic_proc. CREATE OR REPLACE PROCEDURE dynamic_proc AS staff_id NUMBER(6) := 200; first_name VARCHAR2(20); salary NUMBER(8,2); BEGIN --Execute the anonymous block. EXECUTE IMMEDIATE 'begin select first_name, salary into :first_name, :salary from staffs where staff_id= :dno; end;' USING OUT first_name, OUT salary, IN staff_id; dbms_output.put_line(first_name|| ' ' || salary); END; / -- Invoke the stored procedure. CALL dynamic_proc(); -- Delete the stored procedure. DROP PROCEDURE dynamic_proc; |