인터넷을 뒤지는데 뭔 이렇게 잘못되거나, 오타가 있는 펑션이 많은지 -_-;
뒤지고 뒤져서 제대로 되는 코드를 찾은것...
--임시테이블
create or replace type split_tbl as table of varchar2(4000);
--함수생성
create or replace function fn_split_array
(
p_list varchar2,
p_del varchar2 := ','
) return split_tbl pipelined
is
l_idx pls_integer;
l_list varchar2(4000) := p_list;
AA
l_value varchar2(4000);
begin
loop
l_idx := instr(l_list,p_del);
if l_idx > 0 then
pipe row(substr(l_list,1,l_idx-1));
l_list := substr(l_list,l_idx+length(p_del));
else
pipe row(l_list);
exit;
end if;
end loop;
return;
end fn_split_array;
create or replace type split_tbl as table of varchar2(4000);
--함수생성
create or replace function fn_split_array
(
p_list varchar2,
p_del varchar2 := ','
) return split_tbl pipelined
is
l_idx pls_integer;
l_list varchar2(4000) := p_list;
AA
l_value varchar2(4000);
begin
loop
l_idx := instr(l_list,p_del);
if l_idx > 0 then
pipe row(substr(l_list,1,l_idx-1));
l_list := substr(l_list,l_idx+length(p_del));
else
pipe row(l_list);
exit;
end if;
end loop;
return;
end fn_split_array;
이렇게 생성한다음...
이런식으로 테스트 하면됨