注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

zjc的博客

技术积累

 
 
 

日志

 
 

oracle 存储过程:去除给定串中重复串  

2009-01-16 10:19:58|  分类: oracle开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这个oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客功能主要是用于去除给定oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客串中重复oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客串.在使用中需要指定oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客分隔符.举例:

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

输出:

13,14,444

create or replace function MyReplace(oldStr varchar2, sign varchar2) oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客 varchar2 is

str varchar2(1000);

currentIndex number;

startIndex number;

endIndex number;

type str_type is table of varchar2(30)

index by binary_oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客eger;

arr str_type;

Result varchar2(1000);

begin

oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客 oldStr is null then

oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客 ('');

end oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客;

str := oldStr;

currentIndex := 0;

startIndex := 0;

loop

currentIndex := currentIndex + 1;

endIndex := instr(str, sign, 1, currentIndex);

oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客 (endIndex <= 0) then

exit;

end oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客;

arr(currentIndex) := trim(substr(str, startIndex + 1, endIndex - startIndex - 1));

startIndex := endIndex;

end loop;

--取最后oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客

arr(currentIndex) := substr(str, startIndex + 1, length(str));

--去掉重复出现oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客

for i in 1.. currentIndex - 1 loop

for j in i + 1..currentIndex loop

oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客 arr(i) = arr(j) then

arr(j) := '';

end oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客;

end loop;

end loop;

str := '';

for i in 1..currentIndex loop

oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客 arr(i) is not null then

str := str sign arr(i);

--oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客置空

arr(i) := '';

end oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客;

end loop;

--去掉前面oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客标识符

Result := substr(str, 2, length(str));

oracle 存储过程:去除给定串中重复串 - zjcdillion - zjc的博客(Result);

end MyReplace;

  评论这张
 
阅读(437)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017