我有一個表有description_text
列(NVARCHAR
),我需要檢查任何特殊字符(來自ascii codes 128 to 255)。檢測varchar列上的所有特殊字符(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()](http://docs.oracle.com/cd/B19306_01/server.102/b14200/conditions007.htm#i1048942)正則表達式函數。查詢的where子句看起來不那麼混亂,但性能很可能會下降。 –
你的意思是:'where regexp_like(description_text,'('|| chr(128)||'''chr(129)||')')'?仍然有'或'條件。如果可能的話,我正在尋找檢查ascii代碼範圍的東西。 –