2015-09-09 4 views
-1

, пожалуйста, сообщите мне о моей конкретной проблеме.Как найти символы, отличные от ASCII, в строке. DB2

У меня есть поле для таблицы с типом VARCHAR. Мне нужно проверить это поле так, как у него нет каких-либо символов, отличных от ASCII (например, ╥ ї ╡ и т. Д.). Я не нашел способов решить эту проблему.

Пожалуйста, дайте мне руку в этом. Заранее спасибо!

** Обновление: Пример, приведенный в комментариях, не может решить мою проблему. Показан фиксированный набор латинских символов и цифр, но мое поле принимает японские и китайские символы.

+0

«a» также является символом «UTF-8». Я предполагаю, что вы имеете в виду символ * не-ASCII * ?! – deceze

+0

О, конечно, извините - не-ASCII конечно –

+0

Возможный дубликат http://stackoverflow.com/questions/17462802/how-to-find-special-characters-in-db2/17469776#17469776 – mustaccio

ответ

0

Время для другой глупый трюк XML:

SELECT 
    XMLQUERY('matches($X,"^[A-z0-9]+$")' 
    PASSING XMLTEXT('╥ї╡') AS "X" 
) 
FROM SYSIBM.SYSDUMMY1 

    1 
----- 
false 

См https://stackoverflow.com/a/17467695/3434508 Подробные сведения об использовании регулярных выражений для DB2

См https://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.xml.doc/doc/xqrregexp.html для продвинутых классов RegEx символов.