如何制作一个包,在传入 csv 值时以表格格式返回结果。
select * from table(schema.mypackage.myfunction('one, two, three'))
应该回来
one two three
我尝试了ask tom 的一些东西,但这只适用于 sql 类型。
我正在使用 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; /