是否可以使用可选参数创建过程? 例如,创建一个添加所有参数的过程。
add(n1, n2, .... nn)
另一个程序,例如我有11个参数,它从1到10加起来,最后一个参数可以做其他事情。 通过谷歌搜索,似乎你可以使用数组来做到这一点,但我得到的大多数结果是关于另一种编程语言,而不是plsql。如果将理论应用于plsql,我想我想使用varray或嵌套表?
答案 0 :(得分:10)
您需要使用默认值声明参数:
procedure add (n1 number,
n2 number default 0,
...
nn number default 99) is ...
使用此程序:
begin
add(1);
add(5, 6, 7, ..., 111);
add(n1 => 111, n5 => 345, nn => 17);
end;
在最后一种情况下,正如您所看到的,您可以传递3个参数(n1
,n5
,nn
)的值,对于其他参数,将使用默认值。
答案 1 :(得分:7)
您可以通过DEFAULT
运算符或'='
PROCEDURE ADD(NUMBER n1, NUMBER n2, NUMBER n3 DEFAULT 0)....
http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/fundamentals.htm#CHDFADII
如果要在调用中没有显式参数命名的情况下使用它,则必须将可选参数放在过程签名列表的末尾。通过调用中的显式参数命名,它们可以放在任何地方