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存储过程中去掉重复字符串函数的讲解就全部讲完了,希望大家都能够通过上文中的学习有所收获。

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...