在procedure环境里怎样可以实现:
a procedure 去调用b procedure,前提是:b procedur是一个变量,
可以任何procedure,根据传值而要访问的procedure,请帮助给一种实现
方法或者思路,谢谢.或者发mail: [email protected]
.
procedure调用procedure的方法求解??
oracle

解决方案 »

  1.   

    几百年前写的一个小例子,不知道是不是你要的:create or replace procedure p1(o1 out number) is
    begin
      o1 := 1;end;
    /
    create or replace procedure p2(o2 out number) is
    begin
      o2 := 2;end;
    /
    create or replace procedure p(i1 in varchar2, i2 in varchar2) is  v1 number;
      v2 number;begin
      execUTE IMMEDIATE 'begin ' || i1 || '(:1); END;'
        USING OUT v1;  execUTE IMMEDIATE 'begin ' || i2 || '(:1); END;'
        USING OUT v2;  dbms_output.put_line('v1:' || v1);
      dbms_output.put_line('v2:' || v2);end;
    /
      

  2.   

    如果你的被动态调用的存储过程参数个数固定:
    把你调用存储过程的代码写成一个字符串,execute immediate即可,个数不固定稍微麻烦一点,可能最终需要11g环境,10g少个函数。