zoukankan      html  css  js  c++  java
  • Oracle 去掉重复字符串

    create or replace function remove_same_string(oldStr varchar2, sign varchar2) return varchar2 is
    
      /****************************************************
      ** Oracle去掉重复字符串
      ** 函数名称:RemoveSameStr
      ** 参    数:【名称】         【类型 】      【说明】
      **           oldStr           varchar2       要处理的字符串
      **           sign             varchar2       字符串分隔符
      ** 返 回 值:Result           varchar2       不包含重复子串的记录
      ****************************************************/
      str          varchar2(2000);
      currentIndex number;
      startIndex   number;
      endIndex     number;
    
      type str_type is table of varchar2(30) index by binary_integer;
      arr    str_type;
      Result varchar2(1000);
    begin
      -- 空字符串
      if oldStr is null then
        return('');
      end if;
    
      --字符串太长
      if length(oldStr) > 2000 then
        return(oldStr);
      end if;
      str := oldStr;
    
      currentIndex := 0;
      startIndex   := 0;
    
      loop
        currentIndex := currentIndex + 1;
        endIndex     := instr(str, sign, 1, currentIndex);
        if (endIndex <= 0) then
          exit;
        end if;
      
        arr(currentIndex) := trim(substr(str, startIndex + 1, endIndex - startIndex - 1));
        startIndex := endIndex;
      end loop;
    
      --取最后一个字符串:
      arr(currentIndex) := substr(str, startIndex + 1, length(str));
    
      --去掉重复出现的字符串:
      for i in 1 .. currentIndex - 1 loop
        for j in i + 1 .. currentIndex loop
          if arr(i) = arr(j) then
            arr(j) := '';
          end if;
        end loop;
      end loop;
    
      str := '';
      for i in 1 .. currentIndex loop
        if arr(i) is not null then
          str := str || sign || arr(i);
          --数组置空:
          arr(i) := '';
        end if;
      end loop;
    
      --去掉前面的标识符:
      Result := substr(str, 2, length(str));
    
      return(Result);
    end remove_same_string;
  • 相关阅读:
    一、【注解】Spring注解@ComponentScan
    一致性Hash算法
    垃圾回收器搭配和调优
    JVM的逃逸分析
    简单理解垃圾回收
    类加载机制和双亲委派模型
    VMWare15下安装CentOS7
    HBase协处理器(1)
    依赖注入的三种方式
    Javascript-设计模式_装饰者模式
  • 原文地址:https://www.cnblogs.com/stono/p/5455547.html
Copyright © 2011-2022 走看看