oracle 截取字符串

筱_筱 2013-11-21 05:35:40
例如 一段字符串为 "1,2,3,4,10,20,,30,,,40,,,,50"

中间都好数量未知,最后出来都是一个逗号拼接的。

1,2,3,4,10,20,30,40,50

求高手指点!
...全文
178 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
9i好像很落后的感脚! 我们公司10g我都觉得...

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE	10.2.0.1.0	Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
  • 打赏
  • 举报
回复
select  replace(replace('1,2,3,4,10,20,,30,,,40,,,,50',',,,',','),',,',',') from dual
这样好像很笨,从最多连续的逗号串开始嵌套替换
筱_筱 2013-11-22
  • 打赏
  • 举报
回复
引用 11 楼 zlloct 的回复:
[quote=引用 10 楼 qilaoda 的回复:] 非得10以上的才可以么,公司的是 Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production PL/SQL Release 9.2.0.8.0 - Production CORE 9.2.0.8.0 Production TNS for 32-bit Windows: Version 9.2.0.8.0 - Production NLSRTL Version 9.2.0.8.0 - Production 这不是歇菜了。
OH,MY GOD, 9i??不支持这个函数啊 [/quote] 谢谢了 反正 那个字段中的 逗号 不是太多,一个个弄吧!
CT_LXL 2013-11-22
  • 打赏
  • 举报
回复
引用 10 楼 qilaoda 的回复:
非得10以上的才可以么,公司的是 Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production PL/SQL Release 9.2.0.8.0 - Production CORE 9.2.0.8.0 Production TNS for 32-bit Windows: Version 9.2.0.8.0 - Production NLSRTL Version 9.2.0.8.0 - Production 这不是歇菜了。
OH,MY GOD, 9i??不支持这个函数啊
筱_筱 2013-11-22
  • 打赏
  • 举报
回复
非得10以上的才可以么,公司的是 Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production PL/SQL Release 9.2.0.8.0 - Production CORE 9.2.0.8.0 Production TNS for 32-bit Windows: Version 9.2.0.8.0 - Production NLSRTL Version 9.2.0.8.0 - Production 这不是歇菜了。
筱_筱 2013-11-22
  • 打赏
  • 举报
回复
select * from v$version
筱_筱 2013-11-22
  • 打赏
  • 举报
回复
引用 7 楼 zlloct 的回复:
[quote=引用 6 楼 qilaoda 的回复:] 为什么我这边查报错:ORA-00904 :REGEXP_REPLACE 无效的标示符
你的数据库是什么版本[/quote] oracle 9i
CT_LXL 2013-11-22
  • 打赏
  • 举报
回复
引用 6 楼 qilaoda 的回复:
为什么我这边查报错:ORA-00904 :REGEXP_REPLACE 无效的标示符
你的数据库是什么版本
筱_筱 2013-11-22
  • 打赏
  • 举报
回复
为什么我这边查报错:ORA-00904 :REGEXP_REPLACE 无效的标示符
筱_筱 2013-11-22
  • 打赏
  • 举报
回复
引用 楼主 qilaoda 的回复:
例如 一段字符串为 "1,2,3,4,10,20,,30,,,40,,,,50" 中间都好数量未知,最后出来都是一个逗号拼接的。 1,2,3,4,10,20,30,40,50 求高手指点!
为什么我这边查报错:ORA-00904 :REGEXP_REPLACE 无效的标示符
  • 打赏
  • 举报
回复
select regexp_replace('1,2,3,4,10,20,,30,,,40,,,,50 ', '(,)+', ',') from dual;
qingrou123 2013-11-21
  • 打赏
  • 举报
回复
1楼的可以了
时光清浅 2013-11-21
  • 打赏
  • 举报
回复
查一下正则表达式,没用过ORACLE的,不过应该差不多
CT_LXL 2013-11-21
  • 打赏
  • 举报
回复
select regexp_replace('1,2,3,4,10,20,,30,,,40,,,,50 ', '(,){2,}', ',') from dual;

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧