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