zoukankan      html  css  js  c++  java
  • oracle 实现 split 函数

    oracle 实现 split 函数 (返回数组)

    功能描述:用指定分隔符切割输入的字符串,返回一维数组,每个数组元素为一个子串。

    源代码:

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

    CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)

    RETURN ty_str_split

    IS

    j INT := 0;

    i INT := 1;

    len INT := 0;

    len1 INT := 0;

    str VARCHAR2 (4000);

    str_split ty_str_split := ty_str_split ();

    BEGIN

    len := LENGTH (p_str);

    len1 := LENGTH (p_delimiter);

    WHILE j < len

    LOOP

    j := INSTR (p_str, p_delimiter, i);

    IF j = 0

    THEN

    j := len;

    str := SUBSTR (p_str, i);

    str_split.EXTEND;

    str_split (str_split.COUNT) := str;

    IF i >= len

    THEN

    EXIT;

    END IF;

    ELSE

    str := SUBSTR (p_str, i, j - i);

    i := j + len1;

    str_split.EXTEND;

    str_split (str_split.COUNT) := str;

    END IF;

    END LOOP;

    RETURN str_split;

    END fn_split;

    /

    测试:

    DECLARE

    CURSOR c

    IS

    SELECT *

    FROM TABLE (CAST (fn_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;

    /

    结果:

    1

    12

    123

    1234

    12345

  • 相关阅读:
    pip包安装问题
    spyder中让生成的图像单独在窗口中显示
    错误的英语提示翻译 以及经常犯的无错误
    程序结构
    运算符
    js jq计算器
    jQuery筛选选择器
    jQuery获取标签信息
    javascript的getTime函数
    animate动画
  • 原文地址:https://www.cnblogs.com/lijinchang/p/1891047.html
Copyright © 2011-2022 走看看