我对Oracle PL SQL中的函数的OUT参数和RETURN类型有困惑。我对此有几个问题。oracle函数可以返回多个值
- 有人可以解释两者之间的区别吗?
- 功能是否可以像程序一样具有IN和OUT参数?
- 是否可以使用函数返回多个值?
我已经在互联网上搜索,但我得到了不同的答案,这让我更加困惑。
我对Oracle PL SQL中的函数的OUT参数和RETURN类型有困惑。我对此有几个问题。oracle函数可以返回多个值
我已经在互联网上搜索,但我得到了不同的答案,这让我更加困惑。
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)是的。在功能允许使用IN
和OUT
参数。
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;
感谢您的回复。我已经执行了第三个问题的代码,并且我已经理解如果我们在函数中给出多个输出参数会发生什么。 –
我有另一个请求,在很多地方有人提到,在一个函数中使用OUT参数是不可取的,在这种情况下最好使用一个过程。有什么不同。你能解释一下为什么OUT参数的程序比函数更好吗? ...在此先感谢 –
我认为这意味着如果你不在函数中混合'return'和'out'参数,你的代码将会更清晰。如果你只需要返回一个值,那么功能就是一个更好的方法。如果你需要使用许多'out'参数,那么使用'out'参数的程序。但是在PL/SQL中,我们没有任何限制在函数中使用out参数。 – AlexSmet
一个返回,你可以根据需要混合'in','out'和'in out'。 – SomeJavaGuy
您可以创建一个包含多个成员的'TYPE'并返回该类型 –
感谢您的解释Kevin –