Oracle SQL嵌套表类型的默认集合类型

Oracle SQL嵌套表类型的默认集合类型,oracle,plsql,Oracle,Plsql,我有一个Oracle类型,它是一个数字表: CREATE OR REPLACE TYPE t_number AS TABLE OF number; 现在我想在过程的输入参数中使用该类型,如下所示: CREATE OR REPLACE PROCEDURE proc1 (pt_numbers_in IN t_number)... 如果参数为空,如何设置默认值?对于PL/SQL集合类型,我知道如何创建空集合(例如,在包规范中)并将其用作默认集合。我必须在这里做同样的事情,还是有更好的方法来使用SQ

我有一个Oracle类型,它是一个数字表:

CREATE OR REPLACE TYPE t_number AS TABLE OF number;
现在我想在过程的输入参数中使用该类型,如下所示:

CREATE OR REPLACE PROCEDURE proc1 (pt_numbers_in IN t_number)...
如果参数为空,如何设置默认值?对于PL/SQL集合类型,我知道如何创建空集合(例如,在包规范中)并将其用作默认集合。我必须在这里做同样的事情,还是有更好的方法来使用SQL类型的默认变量?我想这样说:

CREATE OR REPLACE PROCEDURE proc1 (pt_numbers_in IN t_number DEFAULT NULL)...
我正在运行11.2.0.4。

类似于此的内容

如果参数为空,如何设置默认值

您必须编写一些代码并检查集合是否为
null
集合,如果是,则对其进行初始化

如果“default”值的意思是“我希望此参数是可选的”,则只需使用
default
子句初始化集合,如下所示:

create or replace procedure proc1(
  p_numbers_in in t_number default t_number(1,2,3)
)
as
begin
  -- some useful code 
end;
create or replace procedure proc1(
  p_numbers_in in t_number default t_number(1,2,3)
)
as
begin
  -- some useful code 
end;