当前位置:Gxlcms > 数据库问题 > oracle自定义split分割函数

oracle自定义split分割函数

时间:2021-07-01 10:21:17 帮助过:141人阅读

create or replace FUNCTION fn_rme_split(p_str IN VARCHAR2, 2 p_delimiter IN VARCHAR2) 3 RETURN rme_split 4 PIPELINED IS 5 j INT := 0; 6 i INT := 1; 7 len INT := 0; 8 len1 INT := 0; 9 str VARCHAR2(4000); 10 BEGIN 11 len := LENGTH(p_str); 12 len1 := LENGTH(p_delimiter); 13 14 WHILE j < len LOOP 15 j := INSTR(p_str, p_delimiter, i); 16 IF j = 0 THEN 17 j := len; 18 str := SUBSTR(p_str, i); 19 PIPE ROW(str); 20 IF i >= len THEN 21 EXIT; 22 END IF; 23 ELSE 24 str := SUBSTR(p_str, i, j - i); 25 i := j + len1; 26 PIPE ROW(str); 27 END IF; 28 END LOOP; 29 RETURN; 30 END fn_rme_split;

 

测试如下:

1 select temp.ass_code
2 from (SELECT COLUMN_VALUE AS ass_code
3 FROM TABLE(rme_delete.fn_rme_split(a,b,c,d,e,f ,,))) temp;

执行结果如下:

技术图片

oracle自定义split分割函数

标签:nbsp   png   class   instr   lin   col   acl   UNC   create   

人气教程排行