Oracle 字符串split的相關(guān)實際應(yīng)用代碼介紹
以下的文章是通過Oracle 字符串split的相關(guān)實際應(yīng)用代碼描述來剖析Oracle 字符串split的實際應(yīng)用,以下就是相關(guān)內(nèi)容的詳細(xì)介紹。你如果是Oracle 字符串split的瘋狂一族的話,以下的文章,你一定不要錯過。
Oracle 字符串split的一種方法
一種方法是用函數(shù):這里轉(zhuǎn)帖網(wǎng)上摘抄的一個函數(shù)
- CREATE OR REPLACE TYPE str_split IS TABLE OF VARCHAR2 (4000);
- CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2,
p_delimiter IN VARCHAR2)- RETURN str_split
- PIPELINED
- AS
- v_length NUMBER := LENGTH(p_string);
- v_start NUMBER := 1;
- v_index NUMBER;
- BEGIN
- WHILE(v_start <= v_length)
- LOOP
- v_index := INSTR(p_string, p_delimiter, v_start);
- IF v_index = 0
- THEN
- PIPE ROW(SUBSTR(p_string, v_start));
- v_start := v_length + 1;
- ELSE
- PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
- v_start := v_index + 1;
- END IF;
- END LOOP;
- RETURN;
- END splitstr;
這里提供另外一種方法,利用Oracle 的正則相關(guān)函數(shù)實現(xiàn):
- select dbms_lob.substr
(regexp_substr('abc,def,ggg,1,2,3,4,5', '[^,]+', 1, x.n))
as player_guid- from dual a,
(select rownum n from dual connect by rownum < 100) x
這里利用了函數(shù) regexp_substr和connect by
其中rownum < 100 會連接限制split的次數(shù) '[^,]+'為split拆分的正則表達(dá)式,這里為【,】逗號
上面sql語句結(jié)果是:
- abc
- def
- ggg
- 1
- 2
- 3
- 4
- 5
上述的相關(guān)內(nèi)容就是對Oracle 字符串split的一種方法的描述,希望會給你帶來一些幫助在此方面。
【編輯推薦】
- Oracle 存儲過程的開發(fā)的介紹
- 開發(fā)Oracle 存儲過程的步驟介紹
- Oracle VARRAY的實際應(yīng)用簡介
- Oracle 數(shù)據(jù)庫中表的連接方式的講解
- Oracle 數(shù)據(jù)庫中表的不同的連接方式描述