oracle如何去除字符串中的重复字符
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如何去除字符串中的重复字符的更多相关文章
- c# 过滤字符串中的重复字符
		
有字符串"a,s,d,v,a,v",如果想去除其中重复的字符,怎么做? 下面是一个方法,用Hashtable来记录唯一字符,排除重复字符,仅供参考. 1.过滤方法: public ...
 - JAVA----编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符
		
package com.pb.demo.packclass.demo1; import java.util.HashSet; /** * 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 ...
 - 三种java 去掉字符串中的重复字符函数
		
三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...
 - 使用Set去除String中的重复字符
		
使用Set去除String中的重复字符 public class test14 { public static void main(String[] args) { String str = &quo ...
 - 去除字符串中的emoji字符
		
对于使用utf8编码的mysql数据库来说,如果字符串中存在emoji小图像,是不能存进数据库中的,查了一下,原因大概是因为utf8编码可以存1-3个字节的字符,但是emoji是4个字节:解决方法可以 ...
 - oracle学习----去除表中的重复数据
		
重复的数据可能有这样两种情况,第一种:表中只有某些字段一样,第二种:两行记录完全一样.第一.对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧. 下面语句可以查询出那 ...
 - python_如何去除字符串中不想要的字符?
		
问题: 过滤用户输入中前后多余的空白字符 ' ++++abc123--- ' 过滤某windows下编辑文本中的'\r': 'hello world \r\n' 去掉文本中unicode组 ...
 - Java  去除字符串前后指定的字符
		
一.去除字符串中的中文字符. /** * 去除字符串中的中文字符 * * 示例:brandName值为: 中国ABCD88深圳 * * 返回: ABCD88 * * @param brandName ...
 - javascript 去除字符串中重复字符
		
/** * 去除字符串中重复的字符,以下提供2种方法, * removeRepeat()为自己所想: * removeRepeat2()参考网上思路补充的 * removeRepeat3()敬请期待· ...
 
随机推荐
- 使用base64对图片的加密解密
			
import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOu ...
 - 给JavaScript文件传入参数的几种方法
			
一.利用全局变量 这是最简单的一种方式,比如Google Adsense: <script type="text/javascript"> google_ad_clie ...
 - 蓝桥杯 算法训练 ALGO-145 4-1打印下述图形
			
算法训练 4-1打印下述图形 时间限制:1.0s 内存限制:256.0MB 问题描述 使用循环结构打印下述图形,打印行数n由用户输入.打印空格时使用"%s"格式,向pri ...
 - Windows 常见进程
			
alg.exe描述: alg.exe是Windows系统的一个重要进程,它的功能是用来处理 Internet 连接共享及防火墙,最好不要结束这个进程.taskmgr.exe描述: Windowsxp ...
 - 实验吧CTF题库-安全杂项
			
XDCTF misc200: 题目提示: 下载文件 用foremost分离文件 接下来用archpr 4.53进行明文攻击 先把00002700.zip中的readme.txt提取出来压缩成zip文件 ...
 - The connection to adb is down and a sever error has occured的解决
			
1. 打开任务管理器,关掉豌豆夹等手机助手 2. 打开命令行,切换到adb所在目录,如:C:\Users\Jubincn\Downloads\adt-bundle-windows-x86_64-201 ...
 - Eclipse中Next Difference的快捷键
			
原文:http://stackoverflow.com/questions/10177460/is-there-a-key-binding-for-next-difference-and-previo ...
 - 来自T00ls的帖子-XSS的奇技淫巧
			
T00LS在前段时间开启了markdown支持,这个漏洞也正是markdown的问题导致. Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定 ...
 - 偏好设置(Preference)
			
一.Preference简介 (1)偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要在偏好设置中保存其他数据.如果利用系统的偏好设置来存储数据, 默认就是存储在Library/Prefere ...
 - Hbase优化记录
			
<configuration><property><name>hbase.rootdir</name><value>hdfs://gagcl ...