oracle函数可以返回多个值

时间:2016-10-11 05:37:59

标签: oracle function plsql parameters procedures

我对oracle PL SQL中函数的OUT参数和RETURN类型感到困惑。我对此几乎没有任何疑问。

  1. 有人可以解释两者之间的区别吗?
  2. 函数是否可以像过程一样同时具有IN和OUT参数?
  3. 是否可以使用函数返回多个值?
  4. 我搜索了互联网,但我得到了不同的答案,让我更加困惑。

2 个答案:

答案 0 :(得分:1)

1)如果函数只有IN个参数,那么你可以在查询中使用该函数。

create or replace function my_func( i in integer) 
return integer as
begin
    return i+1; 
end;

select my_func(1) from dual;

2)是的。在函数中允许使用INOUT参数。

 create or replace function  my_func( i in integer, j out integer, k in out integer) return integer as
 begin
    j:= i + 2; 
    k:= k + i;
    return i+1;
 end;

3)是的,您可以使用多个OUT参数,但只能使用一个RETURN

 create or replace function my_func( i in integer, j out integer, k out integer) 
 return integer as
 begin
    j:= i + 2; 
    k:= i + 3;
    return i+1;
 end;

答案 1 :(得分:0)

  1. 如果要从函数返回多个值,可以返回包含许多字段的先前定义的用户类型。然而,这是一个有点肮脏的解决方案。