1.使用f_new_rowit方法将以;为分隔符的列拆分为多列
select f_new_rowit('16;10;1', ';', 1) L1
,f_new_rowit('16;10;1', ';', 2) L2
,f_new_rowit('16;10;1', ';', 3) L3
,f_new_rowit('16;10;1', ';', 4) L4
from dual;
2.创建方法f_new_rowit,通过instr方法来返回分隔符第n次出现的位置,以及n-1次的位置来截取字符串。
create or replace function f_new_rowit(in_text varchar2,--要截取的字符串
fh varchar2,--截取识别符号
n number)--按第几个符号截取
return varchar2 is
Result varchar2(4000);
begin
if n > 1 then
SELECT substr(in_text,
decode(instr(in_text, fh, 1, n - 1),
0,