Oracle 字符串split的相關(guān)實(shí)際應(yīng)用代碼介紹
以下的文章是通過(guò)Oracle 字符串split的相關(guān)實(shí)際應(yīng)用代碼描述來(lái)剖析Oracle 字符串split的實(shí)際應(yīng)用,以下就是相關(guān)內(nèi)容的詳細(xì)介紹。你如果是Oracle 字符串split的瘋狂一族的話,以下的文章,你一定不要錯(cuò)過(guò)。
Oracle 字符串split的一種方法
一種方法是用函數(shù):這里轉(zhuǎn)帖網(wǎng)上摘抄的一個(gè)函數(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ù)實(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 會(huì)連接限制split的次數(shù) '[^,]+'為split拆分的正則表達(dá)式,這里為【,】逗號(hào)
上面sql語(yǔ)句結(jié)果是:
- abc
 - def
 - ggg
 - 1
 - 2
 - 3
 - 4
 - 5
 
上述的相關(guān)內(nèi)容就是對(duì)Oracle 字符串split的一種方法的描述,希望會(huì)給你帶來(lái)一些幫助在此方面。
【編輯推薦】
- Oracle 存儲(chǔ)過(guò)程的開(kāi)發(fā)的介紹
 - 開(kāi)發(fā)Oracle 存儲(chǔ)過(guò)程的步驟介紹
 - Oracle VARRAY的實(shí)際應(yīng)用簡(jiǎn)介
 - Oracle 數(shù)據(jù)庫(kù)中表的連接方式的講解
 - Oracle 數(shù)據(jù)庫(kù)中表的不同的連接方式描述
 















 
 
 
 
 
 
 