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

Oracle 自定義split 函數(shù)實(shí)例詳解

 更新時(shí)間:2017年01月05日 11:30:24   投稿:lqh  
這篇文章主要介紹了Oracle 自定義split 函數(shù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

Oracle 自定義split 函數(shù)

Oracle沒有提供split函數(shù),但可以自己建立一個(gè)函數(shù)實(shí)現(xiàn)此功能。比如“abc defg  hijkl   nmopqr     stuvw  xyz”,分隔符是空格,但空格個(gè)數(shù)不定。

源代碼:

CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);

CREATE OR REPLACE FUNCTION fn_var_split (
  p_str IN VARCHAR2,
  p_delimiter IN VARCHAR2
)
  RETURN ty_str_split
IS
  j INT := 0;
  len INT := 0;
  str VARCHAR2 (4000);
  str_split ty_str_split := ty_str_split ();
  v_str VARCHAR2 (4000) := RTRIM (LTRIM (p_str, p_delimiter), p_delimiter);
BEGIN
  len := LENGTH (v_str);

  WHILE len > 0
  LOOP
    j := INSTR (v_str, p_delimiter, 1);

    IF j = 0
    THEN
      str := SUBSTR (v_str, 1);
      len := 0;
      str_split.EXTEND;
      str_split (str_split.COUNT) := str;
    ELSE
      str := SUBSTR (v_str, 1, j - 1);
      v_str := LTRIM (LTRIM (v_str, str), p_delimiter);
      len := LENGTH (v_str);
      str_split.EXTEND;
      str_split (str_split.COUNT) := str;
    END IF;
  END LOOP;

  RETURN str_split;
END fn_var_split;
/

測(cè)試:
結(jié)果:

1
12
123
1234
12345 

DECLARE
  CURSOR c
  IS
    SELECT * FROM TABLE (CAST (fn_var_split (';1;12;;123;;;1234;;;;12345;', ';') AS ty_str_split));
  r c%ROWTYPE;
BEGIN
  OPEN c;
  LOOP
    FETCH c INTO r;
    EXIT WHEN c%NOTFOUND;
    DBMS_OUTPUT.put_line (r.column_value);
  END LOOP;
  CLOSE c;
END;
/

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2)

    Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2)

    這篇文章主要介紹了Oracle導(dǎo)出文本文件的三種方法(spool,UTL_FILE,sqluldr2),需要的朋友可以參考下
    2023-05-05
  • Oracle 的入門心得 強(qiáng)烈推薦

    Oracle 的入門心得 強(qiáng)烈推薦

    oracle的體系太龐大了,對(duì)于初學(xué)者來說,難免會(huì)有些無從下手的感覺,什么都想學(xué),結(jié)果什么都學(xué)不好,所以把學(xué)習(xí)經(jīng)驗(yàn)共享一下,希望讓剛剛?cè)腴T的人對(duì)oracle有一個(gè)總體的認(rèn)識(shí),少走一些彎路。
    2009-05-05
  • Oracle(90)數(shù)據(jù)庫(kù)如何創(chuàng)建用戶(User)

    Oracle(90)數(shù)據(jù)庫(kù)如何創(chuàng)建用戶(User)

    這篇文章主要介紹了在Oracle數(shù)據(jù)庫(kù)中創(chuàng)建用戶的過程,包括連接到數(shù)據(jù)庫(kù)、創(chuàng)建用戶、分配權(quán)限、分配表空間和設(shè)置賬戶狀態(tài),提供了詳細(xì)的步驟和代碼示例,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-12-12
  • Oracle兩張表關(guān)聯(lián)批量更新其中一張表的數(shù)據(jù)

    Oracle兩張表關(guān)聯(lián)批量更新其中一張表的數(shù)據(jù)

    本文給大家分享兩種方法解決Oracle兩張表關(guān)聯(lián)批量更新其中一張表的數(shù)據(jù),方法非常簡(jiǎn)單,具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-06-06
  • And,Where使用提示以及用+進(jìn)行左關(guān)聯(lián)的提示及注意事項(xiàng)

    And,Where使用提示以及用+進(jìn)行左關(guān)聯(lián)的提示及注意事項(xiàng)

    先左關(guān)聯(lián)后在過濾假如關(guān)聯(lián)的結(jié)果里面B.b3=null那么你在where后面在加B.b3=2那么結(jié)果中B.b3肯定是沒有null的情況的,也就是說用+進(jìn)行左關(guān)聯(lián)沒有用leftjoin靈活待后續(xù)看是否有什么好的解決方案
    2013-02-02
  • 詳解Oracle隱式游標(biāo)和顯式游標(biāo)

    詳解Oracle隱式游標(biāo)和顯式游標(biāo)

    游標(biāo)是什么?就是在內(nèi)存開辟的一塊臨時(shí)存儲(chǔ)空間。下面通過本文給大家介紹Oracle隱式游標(biāo)和顯式游標(biāo)的相關(guān)知識(shí),需要的朋友參考下吧
    2017-07-07
  • Oracle用戶密碼過期報(bào)錯(cuò)的解決辦法

    Oracle用戶密碼過期報(bào)錯(cuò)的解決辦法

    Oracle數(shù)據(jù)庫(kù) 11g默認(rèn)密碼過期時(shí)間為180天過期,針對(duì)密碼過期企業(yè)一般是采用修改密碼的方式,個(gè)人電腦上則可以將密碼過期時(shí)間修改為永久,本文給大家介紹了Oracle用戶密碼過期報(bào)錯(cuò)的解決辦法,需要的朋友可以參考下
    2024-03-03
  • oracle數(shù)據(jù)庫(kù)添加或刪除一列的sql語(yǔ)句

    oracle數(shù)據(jù)庫(kù)添加或刪除一列的sql語(yǔ)句

    需要注意的一點(diǎn),如果要修改的表,不是當(dāng)前的用戶的表,那么就需要添加上用戶的名稱。以及有修改此表的權(quán)限
    2012-05-05
  • 解決Oracle批量修改問題

    解決Oracle批量修改問題

    這篇文章主要介紹了解決Oracle批量修改問題,需要的朋友可以參考下
    2017-08-08
  • ORACLE中如何找到未提交事務(wù)的SQL語(yǔ)句詳解

    ORACLE中如何找到未提交事務(wù)的SQL語(yǔ)句詳解

    這篇文章主要給大家介紹了關(guān)于ORACLE中如何找到未提交事務(wù)的SQL語(yǔ)句,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用ORACLE具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

潼南县| 南投县| 文化| 融水| 德惠市| 丹江口市| 沙坪坝区| 韶山市| 筠连县| 昭觉县| 盐津县| 九龙县| 汤阴县| 侯马市| 东乌珠穆沁旗| 锡林郭勒盟| 军事| 汾西县| 和林格尔县| 建阳市| 玉龙| 油尖旺区| 郓城县| 保康县| 柘城县| 昌平区| 天等县| 平南县| 米脂县| 舞阳县| 沧源| 垦利县| 旬邑县| 南昌市| 南川市| 垫江县| 北碚区| 福海县| 绥芬河市| 衡山县| 湖北省|