时间:2021-07-01 10:21:17 帮助过:52人阅读
无详细内容 无 CREATE OR REPLACE TYPE table_userid is table of varchar2(100); create or replace function get_userid_tab(v_str in varchar2) return table_userid pipelined as v_new_str varchar2(4000); begin if nvl(v_str,null) is not null then v
<无详细内容> <无>CREATE OR REPLACE TYPE table_userid is table of varchar2(100); create or replace function get_userid_tab(v_str in varchar2) return table_userid pipelined as v_new_str varchar2(4000); begin if nvl(v_str,null) is not null then v_new_str:=v_str; while 1=1 loop if instr(v_new_str,',')=0 then pipe row(to_number(v_new_str)); exit; else pipe row(to_number(substr(v_new_str,1,instr(v_new_str,',')-1))); v_new_str:=substr(v_new_str,instr(v_new_str,',')+1); end if; end loop; end if; return; end; 测试: select * from table(get_userid_tab('16,17,18,19,20')); 结果: 16 17 18 19 20