oracle split() 函数

Posted linbobo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle split() 函数相关的知识,希望对你有一定的参考价值。

 1 create type tabletype is table of varchar2(3000);
 2 CREATE OR REPLACE FUNCTION split (p_list CLOB, p_sep VARCHAR2 := ,)
 3 RETURN tabletype
 4 PIPELINED
 5 /**************************************
 6 * Name: split
 7 * Author: Sean Zhang.
 8 * Date: 2012-09-03.
 9 * Function: 返回字符串被指定字符分割后的表类型。
10 * Parameters: p_list: 待分割的字符串。
11 p_sep: 分隔符,默认逗号,也可以指定字符或字符串。
12 * Example: SELECT *
13 FROM users
14 WHERE u_id IN (SELECT COLUMN_VALUE
15 FROM table (split (‘1,2‘)))
16 返回u_id为1和2的两行数据。
17 **************************************/
18 IS
19 l_idx PLS_INTEGER;
20 v_list VARCHAR2 (32676) := p_list;
21 BEGIN
22 LOOP
23 l_idx := INSTR (v_list, p_sep);
24 IF l_idx > 0
25 THEN
26 PIPE ROW (SUBSTR (v_list, 1, l_idx - 1));
27 v_list := SUBSTR (v_list, l_idx + LENGTH (p_sep));
28 ELSE
29 PIPE ROW (v_list);
30 EXIT;
31 END IF;
32 END LOOP;
33 END;

 

 

--test code 
select * from table(split(1,2,3,4,5,6,,));

 

以上是关于oracle split() 函数的主要内容,如果未能解决你的问题,请参考以下文章

oracle split() 函数

oracle中split是关键字?

oracle中使用split函数问题

oracle自定义split分割函数

oracle 如何用sql实现split功能

Oracle按指定字符拆分字符串-split函数