去除数据中的空格

--去除数据中的空格(>=1),用逗号替换

/*本例子针对http://www.itpub.net/showthread.php?s=&threadid=608001&perpage=10&pagenumber=1*/

create or replace function f_replace (str in varchar2) return varchar2
as
space_counter number(18,0) default 0;
str_out varchar2(2000);
begin
for i in 1..length(str) loop
if ascii(substr(str,i,1)) != 32 then
space_counter := 0;
str_out := str_out||substr(str,i,1);
else
space_counter := space_counter + 1;
if space_counter = 1 then
str_out := str_out || ',';
end if;
end if;
end loop;
return str_out;
end;
/

select f_replace(ltrim(rtrim(' aa bb cc dd ee '))) from dual;

select 'aa'||chr(32)||chr(32)||'bb'||chr(32)||chr(32)||chr(32)||'cc' from dual;

select f_replace(ltrim(rtrim(chr(32)||'aa'||chr(32)||chr(32)||'bb'||chr(32)||chr(32)||chr(32)||'cc'||chr(32)||chr(32)) ))from dual;

为了简化函数内容,没有把trim加入函数内,有兴趣的朋友可以考虑把trim功能提入函数中,这样就可以简化使用。

如果是oracle10g以上版本,用正则表达式是比较简洁的。

SELECT REGEXP_REPLACE('坐火车 去 西藏 玩 看 秀丽 山川','( ){2,}',',')

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/18921899/viewspace-1017069/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/18921899/viewspace-1017069/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值