业务数据如下: 00000000,44000000,44200000,44200700,#4420070200,4420071600!
要求实现效率果如下图:
可以通过自定义函数来实现,实现SQL如下: CREATE OR REPLACE FUNCTION F_SPLIT (src VARCHAR2, delimiter varchar2) RETURN T_ARRAY IS psrc VARCHAR2(500); a T_ARRAY := T_ARRAY(); i NUMBER := 1; j NUMBER := 1; BEGIN psrc := RTrim(src, delimiter); LOOP i := InStr(psrc, delimiter, j); --Dbms_Output.put_line(i); IF i>0 THEN a.extend; a(a.Count) := (SubStr(psrc, j, i-j)); j := i+1; --Dbms_Output.put_line(a(a.Count-1)); END IF; EXIT WHEN i=0; END LOOP; IF j <= Length(psrc) THEN a.extend; a(a.Count) := (SubStr(psrc, j, Length(psrc)+1-j)); END IF; RETURN a; END;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。