CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (20)
CREATE OR REPLACE FUNCTION str_split (p_str IN VARCHAR2, p_flag IN VARCHAR2) RETURN ty_str_split PIPELINED IS j INT := 0; i INT := 1; len INT := 0; len1 INT := 0; str VARCHAR2 (4000); BEGIN len := LENGTH (p_str); len1 := LENGTH (p_flag); WHILE j < len LOOP j := INSTR (p_str, p_flag, i); IF j = 0 THEN j := len; str := SUBSTR (p_str, i); PIPE ROW (str); IF i >= len THEN EXIT; END IF; ELSE str := SUBSTR (p_str, i, j - i); i := j + len1; PIPE ROW (str); END IF; END LOOP; RETURN; END str_split;
原文:http://www.cnblogs.com/su1643/p/6291811.html