我有一个表,其中有一个
description_text
列(NVARCHAR
),我需要检查是否有任何特殊字符(从ascii代码128到255)。
我写的是:
SELECT cid as ID, description_id as "Element ID", description_text as Text, 'special characters in description_text (tbdescription)' as "Error"
FROM tbdescription d
WHERE
(
description_text LIKE '%' || CHR (129) || '%'
or description_text LIKE '%' || CHR (130) || '%'
//..and so on..//
)
这可以完成工作,但我确信有更优雅的方法来验证所有这些 ASCII 代码,而不需要所有
or
条件。
我使用Oracle客户端版本11.1.0.6.0
你就快到了。其中 regexp_like(description_text, '(' || chr(128) || '-' || chr(255) || ')')
在正则表达式中使用连字符而不是竖线。