This section describes how to dynamically call store procedures. You must use anonymous statement blocks to package stored procedures or statement blocks and 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 20 21 22 23 24 25 26 27 28 29 30 | --Create the stored procedure proc_add: CREATE OR REPLACE PROCEDURE proc_add ( param1 in INTEGER, param2 out INTEGER, param3 in INTEGER ) AS BEGIN param2:= param1 + param3; END; / DECLARE input1 INTEGER:=1; input2 INTEGER:=2; statement VARCHAR2(200); param2 INTEGER; BEGIN --Declare the call statement: statement := 'call proc_add(:col_1, :col_2, :col_3)'; --Execute the statement: EXECUTE IMMEDIATE statement USING IN input1, OUT param2, IN input2; dbms_output.put_line('result is: '||to_char(param2)); END; / -- Delete the stored procedure. DROP PROCEDURE proc_add; |