如何在一个存储过程中动态调用另一个存储过程?要动态调用

解决方案 »

  1.   

    create procedure name_a
    as
    begin
    name_b;
    end;
    /
    create procedure name_b;
    as
    begin
    dbms_output.put_line('调用');
    end;
    /
      

  2.   

    如果你要动态调用的过程只有几个的话,可以用if……elsif……endif语句来区分。如果你要调用的过程很多,而且有一定的规律性的话,就编一个过程动态生成要调用的过程名和参数列表。然后在另一个过程中定义一个varchar2 procudure_name 返回该过程生成的过程名称,最后用
    execute immediate 'begin  '||procudure_name||';  end;';