zoukankan      html  css  js  c++  java
  • oracle | 字符串分割函数

    /**
     * 字符串分割函数.
     * @param P_STR 待分割的字符串
     * @param 分隔符
     * @return 自定义table类型TY_STR_SPLIT.
     * 使用方法 select column_value from table(fn_split('1,2',','))
     * @Author: xDer
     */
    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;
    

      

    /** * 字符串分割函数. * @param P_STR 待分割的字符串 * @param 分隔符 * @return 自定义table类型TY_STR_SPLIT. * 使用方法 select column_value from table(fn_split('1,2',',')) * @Author: xDer */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;

  • 相关阅读:
    八、Docker+RabbitMQ
    Spring.Net学习笔记一(IOC第一个实例)
    快速搞懂 SQL Server 的锁定和阻塞
    JQuery.Ajax()的data参数类型
    常用开源介绍
    AutoMapper简明教程(学习笔记)
    面向.Net程序员的前端优化
    --数组元素插入有两种方式
    JQuery源码分析-02正则表达式-RegExp-常用正则表达式
    关于ASP.NET MVC的Filter小记
  • 原文地址:https://www.cnblogs.com/xder/p/5152369.html
Copyright © 2011-2022 走看看