<nav id="qvmyt"><address id="qvmyt"></address></nav>
<pre id="qvmyt"></pre>
<u id="qvmyt"><listing id="qvmyt"></listing></u>


    <li id="qvmyt"><menuitem id="qvmyt"></menuitem></li>
    <li id="qvmyt"><source id="qvmyt"></source></li><progress id="qvmyt"><sub id="qvmyt"></sub></progress>
    <optgroup id="qvmyt"></optgroup>
  • 歡迎來到AD8000.CN 站長教程網!

    Oracle

    當前位置:主頁 > 數據庫 > Oracle >

    Oracle 自定義split 函數實例詳解

    時間:2017-11-22|欄目:Oracle|點擊:

    Oracle 自定義split 函數
    Oracle沒有提供split函數,但可以自己建立一個函數實現此功能。比如“abc defg  hijkl   nmopqr     stuvw  xyz”,分隔符是空格,但空格個數不定。
    源代碼:
    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;
    /
    測試結果:
    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

    下一篇:修改Oracle監聽默認端口號1521的方法

    本文標題:Oracle 自定義split 函數實例詳解

    本文地址:

    說點什么吧
    • 全部評論(0
      還沒有評論,快來搶沙發吧!

    廣告投放 | 聯系我們 | 版權申明

    重要申明:本站所有的文章、圖片、評論等,均由網友發表或上傳并維護或收集自網絡,屬個人行為,與本站立場無關。

    如果侵犯了您的權利,請與我們聯系,我們將在24小時內進行處理、任何非本站因素導致的法律后果,本站均不負任何責任。

    聯系QQ:215436232 | 郵箱:215436232#qq.com(#換成@)

    Copyright © 2020-2022 站長教程網 AD8000.CN 版權所有

    河北懦蟹装饰工程有限公司