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时就会报错.  使用这种方式可能解决 大字符串参数的问题

posted @ 2014-03-07 15:42  陈同学  阅读(2338)  评论(0编辑  收藏  举报