我有一个这种格式的输入参数'0,1,2,3,4'
,我想做的是声明array
一个可变大小的(我的意思是输入参数可能是这样'0,1'
的,所以大小不固定),分开项目(0,1, 2,3,4) 并将它们存储在数字数组中。下面你可以看到我到目前为止所做的:
declare
v_input varchar2(400) := '0,1,2,3,4';
type t_dep2custrel_type is table of number;
t_dep2cust_rel t_dep2custrel_type;
begin
select REGEXP_SUBSTR(v_input, '[^,]+', 1, LEVEL)
into t_dep2cust_rel
from dual
CONNECT BY REGEXP_SUBSTR(v_input, '[^,]+', 1, LEVEL) IS NOT NULL;
end;
我收到此错误消息:
"Local collection types not allowed in SQL statements"
我想知道你是否可以帮我找到问题并告诉我是否有更好的方法来做到这一点。
提前致谢
SELECT .. INTO
仅适用于返回单行的查询,并且它只能收集标量类型。您的查询返回多行,BULK COLLECT INTO
应该使用: