Oracle存储过程中去掉重复字符串函数
创始人
2024-07-29 09:01:33
0次

以下函数是在编写Oracle数据库存储过程时写的函数,相信下文中的内容对大家会非常有帮助,重要的是该函数通用性比较强,故拿出来与大家分享,供大家参考,希望对大家能够有所帮助。

这个函数的功能主要是用于去除给定字符串中重复的字符串.在使用中需要指定字符串的分隔符.示例:

str := MyReplace('13,14,13,444', ',');

输出:

13,14,444

create or replace function MyReplace(oldStr varchar2, sign varchar2) return varchar2 is

 

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;

 

 

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 MyReplace;

到这里,关于Oracle存储过程中去掉重复字符串函数的讲解就全部讲完了,希望大家都能够通过上文中的学习有所收获。

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...