关于如何执行动态存储过程的例子,可以看看。
/*Oracle存储过程语法
CREATE OR REPLACE PROCEDURE dap_test
(checked IN VARCHAR2,cnu OUT INTEGER)
AS
checked1 VARCHAR2(20) ;
BEGIN
checked1 := checked ;
IF checked1 = 'YES' THEN
SELECT COUNT(*) INTO cnu FROM JEST ;
END IF ;
dbms_output.put_line(cnu);
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('没有数据');
END ;
*/
integer li_count
string ls_check
ls_check = "YES"
transaction trans
trans = sqlca
declare lp_test dynamic procedure for sqlsa;
prepare sqlsa from "execute dap_test2 @checked=?" using trans; // 注意一定要加execute
execute dynamic lp_test using :ls_check;
If sqlca.sqlcode = 0 then
fetch lp_test into :li_count;
messagebox ( "Hi",li_count )
else
messagebox ( "Error",sqlca.sqlerrtext )
end if
close lp_test;