检测varchar列上的所有特殊字符(ascii代码128到255)

时间:2013-08-29 09:18:18

标签: sql oracle oracle11g ascii

我的表格中有一个description_text列(NVARCHAR),我需要检查是否有任何特殊字符(来自ascii codes 128 to 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..//
)

这项工作做了哪些工作,但我确信在没有or条件的情况下,有更优雅的方法来验证所有这些ascii代码。

我使用的是Oracle客户端版本11.1.0.6.0

1 个答案:

答案 0 :(得分:1)

你快到了。其中regexp_like(description_text,'('|| chr(128)||' - '|| chr(255)||')')

在常规表达中使用hiphen代替管道。