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;

  • 相关阅读:
    hibernate 建表一对一 就是一对多,多的一方外键唯一unique
    解除映射错误
    hibernate建表多对多建表
    一对多关系 操作小总结
    hibernate建表 一对多 多的一方控制一的一方
    hibernate的组成部分
    Spring cloud微服务安全实战-3-10API安全机制之授权
    Spring cloud微服务安全实战-3-9API安全机制之审计日志
    Spring cloud微服务安全实战-3-8API安全机制之Https
    Spring cloud微服务安全实战-3-7API安全机制之数据加密
  • 原文地址:https://www.cnblogs.com/xder/p/5152369.html
Copyright © 2011-2022 走看看