亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

Oracle 自定義split 函數(shù)

Oracle沒有提供split函數(shù),但可以自己建立一個函數(shù)實現(xiàn)此功能。比如“abc defg  hijkl   nmopqr     stuvw  xyz”,分隔符是空格,但空格個數(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;
/

測試:
結(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;
/

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

相關文章

  • oracle數(shù)據(jù)庫超全的多表查詢連接

    oracle數(shù)據(jù)庫超全的多表查詢連接

    這篇文章主要給大家介紹了關于oracle數(shù)據(jù)庫超全的多表查詢連接的相關資料,多表連接查詢實際上是通過各個表之間公共字段的關鍵性來查詢數(shù)據(jù)的,它是關系數(shù)據(jù)庫查詢的最主要的特征,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Oracle 11g2的監(jiān)聽器配置教程

    Oracle 11g2的監(jiān)聽器配置教程

    Oracle的監(jiān)聽器服務注冊方式有兩種,分別為動態(tài)和靜態(tài),本文將詳細介紹這兩種,需要的朋友可以參考下
    2012-11-11
  • Oracle數(shù)據(jù)庫中的觸發(fā)器詳解

    Oracle數(shù)據(jù)庫中的觸發(fā)器詳解

    這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫中觸發(fā)器的相關資料,觸發(fā)器也是保護數(shù)據(jù)完整性的一種重要方法,于存儲過程不同的是,觸發(fā)器是通過事件進行觸發(fā)被執(zhí)行,存儲過程需要被調(diào)用執(zhí)行,需要的朋友可以參考下
    2024-02-02
  • Oracle Sqlplus命令登錄多種方式案例講解

    Oracle Sqlplus命令登錄多種方式案例講解

    這篇文章主要介紹了Oracle Sqlplus命令登錄多種方式案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • oracle誤drop/update操作后的數(shù)據(jù)恢復測試

    oracle誤drop/update操作后的數(shù)據(jù)恢復測試

    本人主要是對drop/update數(shù)據(jù)后,在允許有時間內(nèi)進行數(shù)據(jù)恢復,操作性強,比較實用。不對理論進行講訴,需要的朋友可以參考下
    2015-08-08
  • oracle 常見等待事件及處理方法

    oracle 常見等待事件及處理方法

    我們可以通過視圖v$session_wait來查看系統(tǒng)當前的等待事件,以及與等待事件相對應的資源的相關信息
    2009-03-03
  • oracle索引介紹(圖文詳解)

    oracle索引介紹(圖文詳解)

    在關系數(shù)據(jù)庫中,索引是一種與表有關的數(shù)據(jù)庫結(jié)構(gòu),它可以使對應于表的SQL語句執(zhí)行得更快。索引的作用相當于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容
    2014-06-06
  • win10 oracle11g安裝報錯問題集合 附解決方法

    win10 oracle11g安裝報錯問題集合 附解決方法

    這篇文章主要為大家總結(jié)了win10 oracle11g安裝報錯問題的產(chǎn)生原因,和oracle安裝報錯的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 整理Oracle數(shù)據(jù)庫中數(shù)據(jù)查詢優(yōu)化的一些關鍵點

    整理Oracle數(shù)據(jù)庫中數(shù)據(jù)查詢優(yōu)化的一些關鍵點

    這篇文章主要介紹了Oracle數(shù)據(jù)庫中數(shù)據(jù)查詢優(yōu)化的一些關鍵點的整理,包括多表和大表查詢等情況的四個方面的講解,需要的朋友可以參考下
    2016-01-01
  • Oracle試用到期如何刪除注冊表繼續(xù)試用30天

    Oracle試用到期如何刪除注冊表繼續(xù)試用30天

    這篇文章主要介紹了Oracle試用到期如何刪除注冊表繼續(xù)試用30天,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04

最新評論