在csv值中传递时,如何创建以表格格式返回结果的包.
select * from table(schema.mypackage.myfunction('one,two,three'))
应该回来
one two three
我正在使用oracle 11g.内置有什么东西吗?
解决方法
以下作品
将其调用为
select * from table(splitter(‘a,b,c,d’))
将其调用为
select * from table(splitter(‘a,b,c,d’))
create or replace function splitter(p_str in varchar2) return sys.odcivarchar2list is v_tab sys.odcivarchar2list:=new sys.odcivarchar2list(); begin with cte as (select level ind from dual connect by level <=regexp_count(p_str,',') +1 ) select regexp_substr(p_str,'[^,]+',1,ind) bulk collect into v_tab from cte; return v_tab; end; /