如何修改以下语法以便我可以查找然后动态执行2个过程: (ic_rep_test1& ic_rep_test2,存储在名为OPSGENERAL.IC_EXTRACTS的表中)。
我认为这是因为需要在传递ref游标的情况下调用proc 在作为参数?不知道如何让它动态地工作。
'立即执行'声明工作? 谢谢!
create or replace PROCEDURE ic_rep_extract_retrieval (
e_id IN integer,
exout OUT sys_refcursor
) IS
BEGIN
IF e_id = '1' THEN
ic_rep_test1 (exout);
ELSIF e_id = '2' THEN
ic_rep_test2 (exout);
END IF;
END ic_rep_extract_retrieval;
/****************************** Revised **************/
CREATE OR REPLACE PROCEDURE OPSGENERAL.ic_rep_extract_retrieval_dl (
e_id IN INTEGER
,exout OUT SYS_REFCURSOR)
IS
use_proc_name VARCHAR2 (200);
BEGIN
SELECT PROC
INTO use_proc_name
FROM OPSGENERAL.IC_EXTRACTS
WHERE extract_id = e_id;
EXECUTE IMMEDIATE
'declare exout sys_refcursor; begin ' || use_proc_name || '(exout); end;';
END ic_rep_extract_retrieval_dl;
/