oracle - Oracle Regexp用空格替换\n,\r和\t

标签 oracle plsql

我试图从包含换行(NL)字符(可能还有其他\n\r\t)的表中选择一列。我想使用REGEXP来选择数据,并用空格“”替换(仅这三个)字符。

最佳答案

无需正则表达式。使用ASCII码和无聊的旧TRANSLATE()可以轻松完成此操作

select translate(your_column, chr(10)||chr(11)||chr(13), '    ')
from your_table;


这将换行符,制表符和回车符替换为空格。



TRANSLATE()比其正则表达式等效得多。但是,如果您对这种方法有所了解,则应该知道我们可以在正则表达式中引用ASCII代码。因此,此语句是上述的正则表达式版本。

select regexp_replace(your_column,  '([\x0A|\x0B|`\x0D])', ' ')
from your_table;


调整之处在于以十六进制而不是基数10引用ASCII码。

关于oracle - Oracle Regexp用空格替换\n,\r和\t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407135/

相关文章:

具有多个外连接的 SQL 查询

php - 客户端上的php或javascript可以链接到远程服务器数据库吗?

oracle - 修复 Oracle 4000 字符中允许的最大长度

mysql - 将 plsql 函数的值复制到新表中

c# - 从 Oracle DB 获取数据时在 C# 中获取 System.OutOfMemoryException

Oracle APEX 5 主页未正确加载

java - 在java中调用pl/sql函数?

sql - 更新显示未找到数据错误

oracle - 自动设置Oracle的序列起始值

sql - Oracle 进程逐渐变慢