create type str_split is table of varchar2(4000) ; 1 CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2) 2 /********************************************************************** 3 * xdshi add blockment 2015-09-21 4 * 通用方法:按列返回分割字符串后的内容 5 * 入参:p_string 分割字符串 6 * p_delimiter 分割符 7 * 返回:每个分割出来的字符串 8 **********************************************************************/ 9 RETURN str_split10 PIPELINED11 AS12 v_length NUMBER := LENGTH(p_string);13 v_start NUMBER := 1;14 v_index NUMBER;15 BEGIN16 WHILE(v_start <= v_length)17 LOOP18 v_index := INSTR(p_string, p_delimiter, v_start);19 20 IF v_index = 021 THEN22 PIPE ROW(SUBSTR(p_string, v_start));23 v_start := v_length + 1;24 ELSE25 PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));26 v_start := v_index + 1;27 END IF;28 END LOOP;29 30 RETURN;31 END splitstr;