假设我有这么一个存储过程,请问如何用EXEC命令执行:
CREATE OR REPLACE PROCEDURE tt

    n1 in number,
   n2 in varchar2(12),
    a1 out NUMBER,
    a2 out varchar2(12)) is 
d1 INTEGER :=10; BEGIN
select d1 into a1 from dual;
select 'test'into a2 from dual;
END tt;

解决方案 »

  1.   


    declare
    a1 number;
    a2 number;
    begin
      tt(1,'2',a1,a2);
    end;
      

  2.   


    declare
    a1 number;
    a2 varchar2(12);
    begin
      tt(1,'2',a1,a2);
    end;
      

  3.   

    declare 
      a1 number;
      a2 varchar2(12);
      n1 number := 1;
      n2 varchar2(12) := 'asdf';
    begin
      tt(n1,n2,a1,a2);
      dbms_output.put_line(a1);
      dbms_output.put_line(a2);  
    end;
      

  4.   

    先定义接收输出的参数
    sql>var a1 number;
    sql>var a2 varchar2;
    sql>exec(1,'a',:a1,:a2);
      

  5.   

    先定义接收输出的参数
    sql>var a1 number;
    sql>var a2 varchar2;
    sql>exec(1,'a',:a1,:a2);
      

  6.   

    declare
    a1 number;
    a2 varchar2(12);
    begin
      tt(1,'2',a1,a2);
    end;