日期:2014-05-17  浏览次数:21016 次

为什么说函数不能返回多个值,过程可以返回多个值?
函数也可以定义多个OUT类型的变量,为什么说不可以返回多个值。
------解决方案--------------------
不能返回多个值是指函数本身,OUT是通过参数的方式传出值,这点用PROCEDURE也可以实现,function与procedure的最大区别在于function 本身可以返回值
------解决方案--------------------
因为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