Oracle 从另一个返回ref游标的Proc-pl/sql过程调用Proc?

Oracle 从另一个返回ref游标的Proc-pl/sql过程调用Proc?,oracle,stored-procedures,plsql,Oracle,Stored Procedures,Plsql,如何修改以下语法,以便可以查找并动态执行这两个过程: ic_rep_test1和ic_rep_test2,存储在名为OPSGENERAL.ic_EXTRACTS的表中 我认为这是因为需要在传递ref游标的情况下调用proc 作为一个参数?不知道如何让它动态工作 “立即执行”语句有效吗? 谢谢 一些附加信息:两个存储过程ic_rep_test1和ic_rep_test2存储在一个名为OPSGENERAL.ic_EXTRACTS的表中,其中包含两个变量“extract_id”和“Proc name”

如何修改以下语法,以便可以查找并动态执行这两个过程: ic_rep_test1和ic_rep_test2,存储在名为OPSGENERAL.ic_EXTRACTS的表中

我认为这是因为需要在传递ref游标的情况下调用proc 作为一个参数?不知道如何让它动态工作

“立即执行”语句有效吗? 谢谢


一些附加信息:两个存储过程ic_rep_test1和ic_rep_test2存储在一个名为OPSGENERAL.ic_EXTRACTS的表中,其中包含两个变量“extract_id”和“Proc name”。谢谢创建或替换过程OPSGENERAL.ic_rep_extract_retrieval_dl e_id IN INTEGER,exout OUT SYS_REFCURSOR为use_proc_name VARCHAR2 200;开始从OPSGENERAL.IC\u EXTRACTS中选择PROC INTO use\u PROC\u name,其中extract\u id=e\u id;执行立即“声明外部系统\u refcursor;开始“| |使用|过程|名称| |”exout;"完";;结束ic_rep_extract_retrieval_dl/在上面的“修订版”SP代码中,语法编译没有错误,但是当用户输入时,它不会生成proc id 1的结果,它只返回“已执行的过程”。对不起,我不确定我是否理解上面“修订版”SP代码中“a_horse_with_no_name”的注释是什么意思,语法编译时没有错误,但是当用户输入时,它不会生成proc id 1的结果,它只返回“procedure executed”,没有输出结果。谢谢
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;
   /