Oracle存储过程中去掉重复字符串函数

数据库 Oracle
Oracle数据库是甲骨文开发的一种关系数据库管理系统,功能性很好,至今为止在数据库市场中仍占有一定的份额,Oracle数据库的存储是Oracle数据库中重要的应用之一,下文中就为大家讲述Oracle存储过程中去掉重复字符串函数。

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

 

责任编辑:迎迎 来源: 电脑初学网
相关推荐

2010-09-09 11:48:00

SQL函数字符串

2010-03-19 13:57:30

Python字符串处理

2010-11-26 13:27:41

MySQL存储过程

2011-04-11 17:28:50

oracle存储select语句

2010-04-15 16:54:31

Oracle存储过程

2010-03-30 13:19:57

Oracle存储

2010-05-27 17:45:13

MySQL存储过程

2010-04-29 17:31:56

Oracle存储过程

2010-04-16 09:03:28

Oracle 存储过程

2010-04-26 10:09:22

Oracle存储过程

2010-05-05 17:19:32

Oracle存储过程

2014-01-02 16:14:10

PostgreSQL字符串

2010-05-07 18:44:28

Oracle存储过程

2010-04-16 10:42:10

Oracle存储过程

2010-05-05 14:55:15

Oracle存储过程

2010-10-25 11:51:05

Oracle单行字符串

2010-03-31 19:15:25

Oracle函数

2018-03-16 08:41:16

Oracle存储函数

2010-04-30 14:22:43

Oracle通过

2024-07-05 09:36:17

PostgreSQL命令SQL
点赞
收藏

51CTO技术栈公众号