关于oracle中换行符替换问题

raul2009 2013-04-24 09:19:40
首先说一下我的需求:
表A结构中有一个列是AAA,这是一个varchar2类型列。现在要把表A中的
所有记录中的AAA里面的[cr],[lf]换行符全部替换成[crlf],另外这个AAA中有
[cr],[lf],[crlf]三种混在的情况。

我现在的做法如下
Cursor cur_aaa is
Select * from A
Where A.AAA like ‘%’ || chr(10) || ‘%’
Or A.AAA like ‘%’ || chr(13) || ‘%’
然后遍历这个游标去更新,用replace替换。
这样是可以替换所有的cr和lf。但是如果AAA中只有[crlf]的话也被替换了,
现在请教各位能否有办法不把AAA中全是[crlf]作为替换对象。求高手指教。
...全文
363 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
raul2009 2013-05-17
各位,谢谢参与,虽没有满意答案,但是给大家参与分儿
回复
善若止水 2013-04-27
一 先把表中[crlf]替换为'*' 二 执行你的操作 三 把'*'替换为[crlf]
回复
zxsjh 2013-04-26
Select * from A Where A.AAA like ‘%’ || chr(10) || ‘%’ Or A.AAA like ‘%’ || chr(13) || ‘%’ minus Select * from A Where A.AAA like ‘%’ || chr(10)chr(13) || ‘%’ 楼主可以使用这个试试,这个应该会查出所有的cr和lf 但是不包含crlf
回复
raul2009 2013-04-26
引用 6 楼 u010412956 的回复:
[quote=引用 4 楼 raul2009 的回复:] 楼上大哥请好好看看我的需求。 还请高手来帮忙
那得到的结果是什么?[/quote] 我想要的结果是把所有的cr和lf换行符全部替换成crlf,另外如果替换之前就都是crlf了那么就不替换了。 我就是想要这样的结果
回复
hh7yx 2013-04-24
引用 2 楼 raul2009 的回复:
引用 1 楼 u010412956 的回复:AAA里面的[cr],[lf]换行符全部替换成[crlf], 哪里有换行符? AAA是列名,每条记录中的AAA都有换行符 [cr]回车 [lf]换行 [crlf]回车换行
得到的结果是?? [crlf]回车换行 [crlf]回车换行
回复
raul2009 2013-04-24
引用 1 楼 u010412956 的回复:
AAA里面的[cr],[lf]换行符全部替换成[crlf], 哪里有换行符?
AAA是列名,每条记录中的AAA都有换行符 [cr]回车 [lf]换行 [crlf]回车换行
回复
hh7yx 2013-04-24
AAA里面的[cr],[lf]换行符全部替换成[crlf], 哪里有换行符?
回复
hh7yx 2013-04-24
引用 4 楼 raul2009 的回复:
楼上大哥请好好看看我的需求。 还请高手来帮忙
那得到的结果是什么?
回复
ben20062143 2013-04-24
可否变通下:在你做完第一步后,含有[crif]的列会被跟新为[crifcrif],然后你可以做第二步,把这种记录再repalce就行了
回复
raul2009 2013-04-24
楼上大哥请好好看看我的需求。 还请高手来帮忙
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-04-24 09:19
社区公告
暂无公告