zoukankan      html  css  js  c++  java
  • Oracle 对字符串去重函数

    CREATE OR REPLACE FUNCTION ZZMES."REMOVESAMESTR" (oldStr varchar2, sign varchar2)
    return varchar2 is
    /****************************************************
    ** Copyright (c) 2008,亚科技术开发中心
    ** All rights reserved.
    **
    ** 函数名称:RemoveSameStr
    ** 参 数:【名称】 【类型 】 【说明】
    ** oldStr varchar2 要处理的字符串
    ** sign varchar2 字符串分隔符
    ** 返 回 值:Result varchar2 不包含重复子串的记录
    ** 摘 要:去除字符传中重复的记录
    **
    ** 当前版本:1.0
    **
    ** 作 者:zhangbq
    ** 完成日期:2008年04月09日
    ** 备 注:
    ****************************************************/
    str varchar2(1000);
    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) > 1000 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 RemoveSameStr;

  • 相关阅读:
    pat乙级1018
    下拉框多选,出现这种情况,求大神帮我看看
    Filter 过滤器
    拦截器和过滤器区别
    Servlet 生命周期
    cannot simultaneously fetch multiple bags 问题的解决办法
    JPA规范及其它持久层框架
    数据库设计的三大范式
    装饰者模式
    Java 流
  • 原文地址:https://www.cnblogs.com/echo-ling/p/7478965.html
Copyright © 2011-2022 走看看