oracle中如何将csv转换为表格
如何制作一个包,在传入 csv 值时以表格格式返回结果.
How can I make a package that returns results in table format when passed in csv values.
select * from table(schema.mypackage.myfunction('one, two, three'))
应该返回
one
two
three
我尝试了 问汤姆,但这只适用于 sql 类型.
I tried something from ask tom but that only works with sql types.
我使用的是 oracle 11g.有内置的东西吗?
I am using oracle 11g. Is there something built-in?
推荐答案
以下作品调用它作为select * from table(splitter('a,b,c,d'))
The following works invoke it as 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;
/
相关文章