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;

  • 相关阅读:
    Dijkstra(单队优化)
    最短路(hdu4725)(建点巧妙)
    次小生成树
    2019暑假集训DAY1(problem3.play)(单调栈思想)
    平衡树
    线段树区间加乘(模板)
    杜恩德的新博客,都来看看-duende99
    oracle 11g如何完全卸载
    如何连接别人电脑上的Oracle数据库--duende99
    Java中的Filter过滤器
  • 原文地址:https://www.cnblogs.com/xder/p/5152369.html
Copyright © 2011-2022 走看看