PL SQL 删除非 Ascii 字符,但不删除回车符
Posted
技术标签:
【中文标题】PL SQL 删除非 Ascii 字符,但不删除回车符【英文标题】:PL SQL Remove Non Ascii character but not carriage returns 【发布时间】:2021-07-09 08:08:19 【问题描述】:我正在尝试使用 PL SQL 删除非 ascii 字符。我尝试使用下面的代码,但它也删除了我不想要的回车。请指教。
select REGEXP_REPLACE('sample string', '[^[:print:]]', '') from dual;
【问题讨论】:
“在键盘上找不到”是什么意思?只有a-zA-Z0-9?周围有很多不同类型的键盘,其中大多数还有特殊字符。 您好,抱歉。已经改述了我的问题。我的意思是像 À È Ì Ò Ù Ỳ Ǹ Ẁ 之类的字符或任何像心形或正方形这样的符号?不知道这个词对不对。 【参考方案1】:将正则表达式更改为(不可打印或回车/换行)。
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
【讨论】:
以上是关于PL SQL 删除非 Ascii 字符,但不删除回车符的主要内容,如果未能解决你的问题,请参考以下文章
从 Snowflake 中的字符串中删除非 ASCII 字符