oracle中的split
第一步:
create or replace type type_str is table of varchar2(100);
第二步:
create or replace function split(p_str varchar2,p_delimiter varchar2 default ',')
return type_str
IS
rs type_str := type_str();
l_str varchar2(4000) := '';
l_len number := 0;
begin
l_str := p_str;
l_len := length(p_delimiter);
while length(l_str) > 0 loop
if instr(l_str,p_delimiter)>0 then
rs.extend;
rs(rs.count) := substr(l_str,1,instr(l_str,p_delimiter) - 1);
l_str := substr(l_str,instr(l_str,p_delimiter)+l_len);
else
rs.extend;
rs(rs.count) := l_str;
exit;
end if;
end loop;
return rs;
end;
第三步:
select column_value from table(split('aaa,bbb,ccc',',');