oracle Array类型作为参数传入函数(存储过程) 大字符串参数解决方案
1. 创建自定义的类型。由于Oracle没有提供现成的array类型,这里用table类型来模拟。
CREATE OR REPLACE TYPE varchar_array is Table OF varchar2(4000)
2. 创建一个存储过程test1
create or replace function fun11(arr varchar_array) return number
is
l_str varchar2(30000);
begin
FOR i IN arr.first .. arr.last LOOP
l_str:=l_str||arr(i); --将传进来的数组合并
END LOOP;
return length(l_str);
end;
测试:
select fun11( varchar_array('111','222','333') ) from dual;
使用场景:
当传入的字符串参数的长度>4000时就会报错. 使用这种方式可能解决 大字符串参数的问题