首页 > 数据库 > > 动态语句-动态调用存储过程
动态调用存储过程必须使用匿名的语句块将存储过程或语句块包在里面,使用EXECUTE IMMEDIATE…USING语句后面带IN、OUT来输入、输出参数。
语法请参见图1。
using_clause子句的语法参见图2。
对以上语法格式的解释如下:
--创建存储过程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
--声明调用语句
statement := 'call proc_add(:col_1, :col_2, :col_3)';
--执行语句
EXECUTE IMMEDIATE statement
USING IN input1, OUT param2, IN input2;
dbms_output.put_line('result is: '||to_char(param2));
END;
/
--删除存储过程
DROP PROCEDURE proc_add;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3150067/ ,如需转载,请注明出处,否则将追究法律责任。