Oracle 字符串split的一种方法 一种方法是用函数:这里转帖网上摘抄的一个函数 1.CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000); 2.CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2) 3.RETURN str_split 4.PIPELINED 5.AS 6.v_length NUMBER := LENGTH(p_string); 7.v_start NUMBER := 1; 8.v_index NUMBER; 9.BEGIN 10.WHILE(v_start <= v_length) 11.LOOP 12.v_index := INSTR(p_string, p_delimiter, v_start); 13.IF v_index = 0 14.THEN 15.PIPE ROW(SUBSTR(p_string, v_start)); 16.v_start := v_length + 1; 17.ELSE 18.PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start)); 19.v_start := v_index + 1; 20.END IF; 21.END LOOP; 22.RETURN; 23.END splitstr; 这里提供另外一种方法,利用Oracle 的正则相关函数实现: 1.select dbms_lob.substr(regexp_substr('abc,def,ggg,1,2,3,4,5', '[^,]+', 1, x.n)) as player_guid 2.from dual a, (select rownum n from dual connect by rownum < 100) x 这里利用了函数 regexp_substr和connect by 其中rownum < 100 会连接限制split的次数 '[^,]+'为split拆分的正则表达式,这里为【,】逗号 上面sql语句结果是: 1.abc 2.def 3.ggg 4.1 5.2 6.3 7.4 8.5 上述的相关内容就是对Oracle 字符串split的一种方法的描述,希望会给你带来一些帮助在此方面。