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

时间:2015-10-04 16:18:55

标签: oracle stored-procedures plsql

如何修改以下语法以便我可以查找然后动态执行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;
   /      

0 个答案:

没有答案
相关问题