最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle字符串拆分實(shí)例詳解

 更新時(shí)間:2023年04月03日 16:00:30   作者:stormkai  
這篇文章主要給大家介紹了關(guān)于Oracle字符串拆分的相關(guān)資料,Oracle提供了多種分割函數(shù),其中最常用的是REGEXP_SUBSTR函數(shù),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

Oracle字符串拆分

比如把一列 a,b,c 拆分為

a
b
c

1. 使用regexp_substr()函數(shù)

1.1 拆分aaa,bbb,ccc

SELECT
	regexp_substr('aaa,bbb,ccc', '[^,]+', 1, LEVEL)
FROM
	dual
CONNECT BY
	LEVEL <= LENGTH('aaa,bbb,ccc')-LENGTH(REPLACE('aaa,bbb,ccc', ','))+ 1;

輸出結(jié)果:

1.2 拆分aaa;bbb;ccc

SELECT
	regexp_substr('aaa;bbb;ccc', '[^;]+', 1, LEVEL)
FROM
	dual
CONNECT BY
	LEVEL <= LENGTH('aaa;bbb;ccc')-LENGTH(REPLACE('aaa;bbb;ccc', ';'))+ 1;

1.3 level作用

SELECT LEVEL FROM dual CONNECT BY LEVEL<10;

2. 在oracle中實(shí)現(xiàn)MySQL的find_in_set()函數(shù)

2.1 使用oracle的函數(shù)定義函數(shù)FIND_IN_SET()

FIND_IN_SET(str,strlist)

CREATE OR REPLACE FUNCTION FIND_IN_SET(piv_str1 varchar2, piv_str2 varchar2, p_sep varchar2 := ',')
RETURN NUMBER IS
  l_idx    number:=0;
  str      varchar2(500);
  piv_str  varchar2(500) := piv_str2;
  res      number:=0;
  loopIndex number:=0;
BEGIN
	IF instr(piv_str, p_sep, 1) = 0 THEN
	   IF piv_str = piv_str1 THEN
	      res:= 1;
	   END IF;
	ELSE
		LOOP
			l_idx := instr(piv_str,p_sep);
			 loopIndex:=loopIndex+1;
			  IF l_idx > 0 THEN
				 str:= substr(piv_str,1,l_idx-1);
				 IF str = piv_str1 THEN
				   res:= loopIndex;
				   EXIT;
				 END IF;
				piv_str := substr(piv_str,l_idx+length(p_sep));
			  ELSE   
				IF piv_str = piv_str1 THEN
				   res:= loopIndex;
				END IF;
				EXIT;
			  END IF;
		END LOOP;
	END IF;
RETURN res;  
END FIND_IN_SET;

2.2 使用FIND_IN_SET()

查看aaa是否在aaa,bbb,ccc中

SELECT find_in_set('aaa','aaa,bbb,ccc') FROM dual;

返回1

查看bbb是否在aaa,bbb,ccc中

SELECT find_in_set('bbb','aaa,bbb,ccc') FROM dual;

返回2

查看ddd是否在aaa,bbb,ccc中

SELECT find_in_set('ddd','aaa,bbb,ccc') FROM dual;

返回0

2.3 刪除函數(shù)FIND_IN_SET()

DROP FUNCTION FIND_IN_SET;

3. 使用存儲(chǔ)過程輸入aaa,bbb,ccc,拆分打印出來

3.1 定義存儲(chǔ)過程

CREATE OR REPLACE PROCEDURE SPLIT_STR(STRLIST IN VARCHAR2)
 IS
  CURSOR CHECK_FLAG IS
    SELECT REGEXP_SUBSTR(STRLIST, '[^,]+', 1, LEVEL) F_VALUE
      FROM DUAL
    CONNECT BY LEVEL <=
               LENGTH(STRLIST) - LENGTH(REPLACE(STRLIST, ',')) + 1;
BEGIN
  FOR REC IN CHECK_FLAG LOOP
    DBMS_OUTPUT.PUT_LINE(REC.F_VALUE);
  END LOOP;
END SPLIT_STR;

3.2 使用塊執(zhí)行存儲(chǔ)過程

DECLARE
BEGIN
  SPLIT_STR('aaa,bbb,ccc');
END;

執(zhí)行結(jié)果:

3.3 刪除存儲(chǔ)過程

DROP PROCEDURE SPLIT_STR;

總結(jié)

到此這篇關(guān)于Oracle字符串拆分的文章就介紹到這了,更多相關(guān)Oracle字符串拆分內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle的SYS_GUID()函數(shù)用法及說明

    Oracle的SYS_GUID()函數(shù)用法及說明

    這篇文章主要介紹了Oracle的SYS_GUID()函數(shù)用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 基于Oracle閃回詳解(必看篇)

    基于Oracle閃回詳解(必看篇)

    下面小編就為大家分享一篇基于Oracle閃回詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Oralce數(shù)據(jù)導(dǎo)入出現(xiàn)(SYSTEM.PROC_AUDIT)問題處理方法

    Oralce數(shù)據(jù)導(dǎo)入出現(xiàn)(SYSTEM.PROC_AUDIT)問題處理方法

    A數(shù)據(jù)庫打開了審計(jì),而導(dǎo)入到B數(shù)據(jù)庫時(shí),B數(shù)據(jù)庫審計(jì)沒有打開,數(shù)據(jù)庫中沒有SYSTEM.PROC_AUDIT對(duì)象,本文將此問題的解決方法,需要的朋友可以參考下
    2012-12-12
  • Oracle 中文字段進(jìn)行排序的sql語句

    Oracle 中文字段進(jìn)行排序的sql語句

    Oracle 中對(duì)中文字段進(jìn)行排序通常有三種方式
    2009-09-09
  • Oracle 系統(tǒng)變量函數(shù)用法指南

    Oracle 系統(tǒng)變量函數(shù)用法指南

    在Oracle數(shù)據(jù)庫中,Oracle系統(tǒng)變量函數(shù)是經(jīng)常會(huì)使用到的函數(shù),分享下Oracle系統(tǒng)變量函數(shù)的用法。希望對(duì)大家有所幫助
    2014-08-08
  • PLSQL連接本地oracle或遠(yuǎn)程oracle數(shù)據(jù)庫實(shí)現(xiàn)隨意切換功能

    PLSQL連接本地oracle或遠(yuǎn)程oracle數(shù)據(jù)庫實(shí)現(xiàn)隨意切換功能

    這篇文章主要介紹了PLSQL連接本地oracle或遠(yuǎn)程oracle數(shù)據(jù)庫實(shí)現(xiàn)隨意切換功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 探討Oracle中的&號(hào)問題

    探討Oracle中的&號(hào)問題

    在Oracle中inset里面的內(nèi)容如果中有'&'號(hào),有可能會(huì)插入失敗,究竟是什么原因呢?以下是解決這個(gè)問題的方法,需要的朋友可以參考下
    2013-07-07
  • Oracle數(shù)據(jù)庫查看鎖表語句和解鎖的方法示例

    Oracle數(shù)據(jù)庫查看鎖表語句和解鎖的方法示例

    在DBA的日常工作中,經(jīng)常遇到為Oracle用戶解鎖的操作,這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫查看鎖表語句和解鎖的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Oracle 11g如何清理數(shù)據(jù)庫的歷史日志詳解

    Oracle 11g如何清理數(shù)據(jù)庫的歷史日志詳解

    這篇文章主要給大家介紹了關(guān)于Oracle 11g如何清理數(shù)據(jù)庫歷史日志的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • Oracle占用內(nèi)存過高的問題及解決

    Oracle占用內(nèi)存過高的問題及解決

    這篇文章主要介紹了Oracle占用內(nèi)存過高的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

南木林县| 深圳市| 景东| 额济纳旗| 巴林右旗| 天气| 阿克陶县| 乌拉特中旗| 齐齐哈尔市| 鸡泽县| 榆树市| 聂荣县| 伊吾县| 四会市| 安塞县| 吴桥县| 都昌县| 龙江县| 历史| 朝阳区| 怀集县| 巫山县| 姚安县| 黄骅市| 临泽县| 鞍山市| 阿拉尔市| 塘沽区| 安平县| 东乡族自治县| 昭苏县| 南宁市| 泊头市| 中山市| 济宁市| 澎湖县| 登封市| 台中市| 颍上县| 互助| 郎溪县|