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;
  • 相关阅读:
    iOS 地图与定位开发系列教程(一)
    opencv 之 transformation
    the brain 8.0
    vs中添加库文件WinMM.Lib
    JAVA简单性能检测
    【转帖】一套鼠标控制2台电脑
    Synergy工具一套键盘鼠标连接多台机器
    文件夹下所有文件及子文件夹将文件名小写
    捕捉Facebook Like的数据
    按键精灵的网页自动化测试
  • 原文地址:https://www.cnblogs.com/stono/p/5455547.html
Copyright © 2011-2022 走看看