Erkennen alle Sonderzeichen (ascii-codes 128 bis 255) auf varchar-Spalte

ich habe eine Tabelle ist, die ein description_text Spalte ( NVARCHAR ), die ich brauche, um zu überprüfen, ob eventuell spezielle Zeichen (von ascii-codes 128 bis 255).

Was ich schrieb ist:

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..//
)

Was macht den job, aber ich bin sicher, es gibt elegantere Möglichkeit der überprüfung all diese ascii-codes, ohne all die or Bedingungen.

Ich verwenden Sie die Oracle-Client-Version 11.1.0.6.0

Als weitere option könnte man verwenden, regexp_like() regulären Ausdruck-Funktion. Die where Klausel würde eine Abfrage Aussehen weniger überladen, aber die Leistung wird sich wahrscheinlich verschlechtern.
Du meinst wie: where regexp_like(description_text, '(' || chr(128) || '|' || chr(129) || ')') ? noch mit or Bedingungen. Ich bin auf der Suche nach etwas, dass der check reicht von ascii-codes, wenn möglich.

InformationsquelleAutor Alon Adler | 2013-08-29

Schreibe einen Kommentar