码迷,mamicode.com
首页 > 数据库 > 详细

oracle自定义split分割函数

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

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

函数如下:

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

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

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!