解决方案 »

  1.   

    不能返回多个值是指函数本身,OUT是通过参数的方式传出值,这点用PROCEDURE也可以实现,function与procedure的最大区别在于function 本身可以返回值
      

  2.   

    因为oracle函数必须要return。而触发器可以通过out来作为返回值。这是函数和存储过程的最重要的区别。看下他们的定义就明白了
    1:存储过程的基本格式
    create [or replace] procedure procedure_name 
    [ (argment [ { in| in out }] type, 
    argment [ { in | out | in out } ] type 
    { is | as } 
    <类型.变量的说明> 
    ( 注: 不用 declare 语句 ) 
    Begin 
    <执行部分> 
    exception 
    <可选的异常处理说明> 
    end;
    1:函数的基本格式
    CREATE OR REPLACE FUNCTION 函数名
    RETURN 返回值类型
    IS
    声明部分;
    BEGIN
    函数体;
    RETURN 变量;
    END