oracle split(转自--博客园 linbo.yang)
时间:2021-07-01 10:21:17
帮助过:15人阅读
type tabletype
is table of varchar2(
3000);
CREATE OR REPLACE FUNCTION split(p_list CLOB, p_sep
VARCHAR2 :
= ‘,‘)
RETURN tabletype
PIPELINED
/**************************************
* Name: split
* Function: 返回字符串被指定字符分割后的表类型。
* Parameters: p_list: 待分割的字符串。
p_sep: 分隔符,默认逗号,也可以指定字符或字符串。
**************************************/
IS
l_idx PLS_INTEGER;
v_list VARCHAR2(
32676) :
= p_list;
BEGIN
LOOP
l_idx := INSTR(v_list, p_sep);
IF l_idx
> 0 THEN
PIPE ROW(SUBSTR(v_list,
1, l_idx
- 1));
v_list := SUBSTR(v_list, l_idx
+ LENGTH(p_sep));
ELSE
PIPE ROW(v_list);
EXIT;
END IF;
END LOOP;
END;
oracle split(转自--博客园 linbo.yang)
标签:ora arch arc oop str ace substr sub 默认