--包成员返回的嵌套表类型必须是模式级别的,不能是包级别的
create type source_str1 is table of varchar2(100);
create or replace package test_pkg
is
type source_str is table of varchar2(100);
function split_sub(split_value varchar2,delimiter varchar2) return source_str1;
end test_pkg;
create or replace package body test_pkg
is
function split_sub(split_value varchar2,delimiter varchar2) return source_str1
is
p_source varchar2(100):=split_value;
p_deli varchar2(10):=delimiter;
p_re source_str1:=source_str1();
p_index number:=0;
p_index_temp number:=0;
begin
loop
p_index_temp:=p_index;
p_index:=instr(p_source,p_deli,p_index+1);
if p_index>0 then
p_re.extend;
p_re(p_re.last):=substr(p_source,p_index_temp+1,p_index-p_index_temp-1);
else