首页 > 数据库技术 > 详细

oracle自定义split分割函数

时间:2019-12-24 17:24:25      阅读:138      评论:0      收藏:0      [点我收藏+]

函数如下:

 1 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分割函数

原文:https://www.cnblogs.com/651434092qq/p/12091590.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!