如何在Oracle的一个select语句中编写两个替换函数



我想在一个选择语句中替换两个东西。现在我可以一次替换一个字符。但是根据我的要求,我需要在一个语句中替换两个东西。我想用零替换一个特殊字符,另一个是这个数据存储在多行中。我想在一行中获取这些数据。

select replace(message,chr(ACII_Value),0) 
from my_table -- I can replace special character by zero using this.
select (message,chr(10),' ') 
from my_table -- I can put all data in single line using this.

现在我想在一个select语句中完成这个。

select replace( replace( message, chr(ACII_Value), 0), chr(10), ' ') 
from my_table;

另一种选择是TRANSLATE函数:

select translate(message, chr(ASCII_Value)||chr(10), '0 ') from my_table;

如果你只替换两个字符,我会选择@schurik的答案,因为它使用了一个更简单、更常见的函数。

最新更新