日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle中有类似split的方法么,ORACLE中字符串split的一种方法

發布時間:2025/4/5 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle中有类似split的方法么,ORACLE中字符串split的一种方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一種方法是用函數:這里轉帖網上摘抄的一個函數

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的正則相關函數實現:

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

這里利用了函數 regexp_substr和connect by

其中rownum < 100 會連接限制split的次數 '[^,]+'為split拆分的正則表達式,這里為【,】逗號

上面sql語句結果是:

abc

def

ggg

1

2

3

4

5

總結

以上是生活随笔為你收集整理的oracle中有类似split的方法么,ORACLE中字符串split的一种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。