oracle存储过程传入一个字符串参数'1,2,3,4,5,6,7,8',如何分割并转为数字?

如题所述

第1个回答  2022-11-16
create or replace type type_split as table of varchar2(50); --创建一个  type  ,如果为了使split函数具有通用性,请将其size 设大些。\x0d\x0a\x0d\x0a--创建function\x0d\x0acreate or replace function split\x0d\x0a(\x0d\x0a p_list varchar2,\x0d\x0a p_sep varchar2 := ','\x0d\x0a) return type_split pipelined\x0d\x0a is\x0d\x0a l_idx pls_integer;\x0d\x0a v_list varchar2(50) := p_list;\x0d\x0abegin\x0d\x0a loop\x0d\x0a l_idx := instr(v_list,p_sep);\x0d\x0a if l_idx > 0 then\x0d\x0a pipe row(substr(v_list,1,l_idx-1));\x0d\x0a v_list := substr(v_list,l_idx+length(p_sep));\x0d\x0a else\x0d\x0a pipe row(v_list);\x0d\x0a exit;\x0d\x0a end if;\x0d\x0a end loop;\x0d\x0a return;\x0d\x0aend split;\x0d\x0a\x0d\x0a使用:\x0d\x0a select * from table(split('1,2,3,4,5,6,7,8'\x0d\x0a,','));\x0d\x0a然后就可以通过“,”来分割数字了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网