RegEx在Oracle SQL的开始和结束时删除新换行符

时间:2018-01-10 09:09:30

标签: oracle linefeed

我的数据在字符串的开头和结尾包含许多新的换行符,这使得理解数据变得困难。样本数据如下所示。

  

     

示例文本

     

新值

     

我尝试用空字符串替换chr(10),但它正在删除两行之间的换行符。

我的代码

select REPLACE(a1, chr(10), ' ') from( select  '

Sample Text

New value

' as a1 from dual);

任何建议。

2 个答案:

答案 0 :(得分:3)

尝试使用null

TRIM

SELECT TRIM(CHR(10) FROM col) FROM dual 可以选择指定要从字符串的开头和结尾删除的字符。按照下面的简短演示来看它的实际效果。点击here,了解如何使用TRIM和大量示例。

修改:如果您有CLOB列并且TRIM无效,那么我们仍然可以使用TRIM

REGEXP_REPLACE

以下示例显示SELECT REGEXP_REPLACE(REGEXP_REPLACE(col, '^' || CHR(10) || '*', ''), CHR(10) || '*$', '') AS output FROM dual 代替REGEXP_REPLACE

Demo

答案 1 :(得分:0)

另一种修剪或删除换行/回车/标签的方法是使用 “ translate(column_name,chr(10)|| chr(13)|| chr(09),'')”。 这对我有用。