过程里面定义了一个in一个out,然后
call testpro1('aaa10',t2),t2就是在过程里定义的out变量或者call testpro1('aaa10',2)都报错。请问
1:有out变量的时候应该怎么call?
2:过程定义的时候,哪种情况下只能返回一个值?哪种情况下可以返回多个值?
3:as与is有什么区别?
4:在过程名(para1.)里定义参数与在as或者is后面定义参数有什么区别?
求高人详细解释下上面4个问题,最好给点代码,谢谢!本人抱着学习的态度求解!再次谢谢!!
只有20分了!跪求热心人帮忙!

解决方案 »

  1.   

    1) 看下面的例子
    2) 过程没有返回值.函数(create function ...)可以而且只能有一个返回值。如果需要多个返回值,可以用多个输出参数。
    3)as 和 is 没有区别。
    4)as和is后面定义参数是局部变量,作用范围只限于本过程(函数)create or replace procedure myproc(arg1 in int, arg2 out int, arg3 out int)
    as
      multiply int := 2;
    begin
      arg2 := multiply * arg1;
      arg3 := multiply * arg1 + 1;
    end;declare
      result1 int;
      result2 int;
    begin
      myproc(100, result1, result2);
      dbms_output.put_line(result1);
      dbms_output.put_line(result2);
    end;
      

  2.   

    写一个程序块,然后调用 。 
    declare 
    t2 number;begin 
     testpro1('aaa10',t2);
    end;