PL SQL 删除非 Ascii 字符但不删除回车 returns

PL SQL Remove Non Ascii character but not carriage returns

我正在尝试使用 PL SQL 删除非 ASCII 字符。我尝试使用下面的代码,但它也删除了我不想要的回车 returns 。请指教

select REGEXP_REPLACE('sample string', '[^[:print:]]', '') from dual;

将正则表达式更改为(不可打印或回车 return/newline)。

WITH t (txt) AS
(
SELECT 'Hello'||chr(13)||' World' FROM DUAL
)
select REGEXP_REPLACE(txt, '[^[:print:|\x0A|\x0B|`\x0D]]', '') from t; 

REGEXP_REPLA
------------
Hello
 World

解释得很好here