create or replace function remove_rame_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_rame_string;
create or replace function remove_rame_string(oldStr varchar2, sign varchar2, newStr varchar2)
return varchar2 is /****************************************************
** Oracle去掉重复字符串
** 函数名称:RemoveSameStr
** 参 数:【名称】 【类型 】 【说明】
** oldStr varchar2 要处理的字符串
** sign varchar2 字符串分隔符
** newStr 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('[' || newStr || ']');
end if; --字符串太长
if length(oldStr) > 2000 then
return(oldStr);
end if;
str := oldStr;
--拼接字符串,在"]"之前添加新创建的字符串
str := substr(str, 0, instr(str, ']')-1) || ','||newStr;
str := substr(str, instr(str, '[')+1, length(str)); 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_rame_string; UPDATE TEST_CLOB set "STR" = remove_rame_string(STR, ',', '"str1","str2", "str2", "str3"') WHERE ID='';

https://zhidao.baidu.com/question/425459266020298772.html

oracle如何去除字符串中的重复字符的更多相关文章

  1. c# 过滤字符串中的重复字符

    有字符串"a,s,d,v,a,v",如果想去除其中重复的字符,怎么做? 下面是一个方法,用Hashtable来记录唯一字符,排除重复字符,仅供参考. 1.过滤方法: public ...

  2. JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符

    package com.pb.demo.packclass.demo1; import java.util.HashSet; /** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 ...

  3. 三种java 去掉字符串中的重复字符函数

    三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...

  4. 使用Set去除String中的重复字符

    使用Set去除String中的重复字符 public class test14 { public static void main(String[] args) { String str = &quo ...

  5. 去除字符串中的emoji字符

    对于使用utf8编码的mysql数据库来说,如果字符串中存在emoji小图像,是不能存进数据库中的,查了一下,原因大概是因为utf8编码可以存1-3个字节的字符,但是emoji是4个字节:解决方法可以 ...

  6. oracle学习----去除表中的重复数据

    重复的数据可能有这样两种情况,第一种:表中只有某些字段一样,第二种:两行记录完全一样.第一.对于部分字段重复数据的删除        先来谈谈如何查询重复的数据吧.        下面语句可以查询出那 ...

  7. python_如何去除字符串中不想要的字符?

    问题: 过滤用户输入中前后多余的空白字符 '    ++++abc123---    ' 过滤某windows下编辑文本中的'\r': 'hello world \r\n' 去掉文本中unicode组 ...

  8. Java 去除字符串前后指定的字符

    一.去除字符串中的中文字符. /** * 去除字符串中的中文字符 * * 示例:brandName值为: 中国ABCD88深圳 * * 返回: ABCD88 * * @param brandName ...

  9. javascript 去除字符串中重复字符

    /** * 去除字符串中重复的字符,以下提供2种方法, * removeRepeat()为自己所想: * removeRepeat2()参考网上思路补充的 * removeRepeat3()敬请期待· ...

随机推荐

  1. python3小例子:scrapy+mysql

    https://blog.csdn.net/u010151698/article/details/79371234

  2. 在Linux上利用core dump和GDB调试segfault

    时常会遇到段错误(segfault),调试非常费劲,除了单元测试和基本测试外,有些时候是在在线环境下,没有基本开发和测试工具,这就需要调试的技能.以前介绍过使用strace进行系统调试和追踪<l ...

  3. IPv4 forwarding is disabled. Networking will not work.

    centos 7 docker 启动了一个web服务 但是启动时 报 WARNING: IPv4 forwarding is disabled. Networking will not work. 网 ...

  4. DCloud:目录

    ylbtech-DCloud:目录 1.返回顶部 1.5+ App开发入门指南 http://ask.dcloud.net.cn/article/89 2.   3. 2.返回顶部   3.返回顶部 ...

  5. c# 代码调用ssis包

    https://docs.microsoft.com/en-us/sql/integration-services/run-manage-packages-programmatically/loadi ...

  6. 需要network lightweight filter disk 上的文件netft.sys

    小米wifi在win10下安装不成功,需要network lightweight filter disk 上的文件ntflt.sys 默认路径有问题,改成下面的路径好了! 选择下面第一个路径安装成功了 ...

  7. 【274】Python 相关问题

    一.中文编码   参考:Python 中文编码 Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错. 解决方法为只要在文件开头加入如下代码,任 ...

  8. maven 配置说明

    1.坐标 1.1 每一jar文件都有一个唯一坐标.通过坐标可以精确确定是哪个jar 1.2 坐标组成 1.2.1 Group ID : 公司名.公司网址倒写 1.2.2 Artifact ID : 项 ...

  9. spirng boot web配置开发

    spring-booter-starter-web是spring-boot web发开的核心,自动配置信息存储在spring-boot-autoconfigure.jar 下面的web目录里面,包含了 ...

  10. css知多少(6)——选择器的优先级(转)

    css知多少(6)——选择器的优先级   1. 引言 上一节<css知多少(5)——选择器>最后提到,选择器类型过多将导致一些问题,是什么问题呢?咱们直接举例子说明. 上图中,css中的两 ...