Anmelden

View Full Version : SQL-Statement für nicht-druckbare Zeichen



M Scheid
03-11-04, 14:50
Was muss ich in einer Select-Anweisung im Where-Teil angeben, um die Datensätze mit nicht druckbaren Zeichen zu finden?

Fuerchau
03-11-04, 14:54
Du kannst Hex-Werte einfach mit x'..' abfragen.

BenderD
03-11-04, 15:05
Hallo,

wenn diese Frage exakt gestellt ist, geht das nicht. Es gibt keine Where Klausel, die alle Sätze mit nicht druckbaren Zeichen einschließt und den Rest ausschließt.

mfg

Dieter Bender



Was muss ich in einer Select-Anweisung im Where-Teil angeben, um die Datensätze mit nicht druckbaren Zeichen zu finden?

Fuerchau
03-11-04, 15:07
Mit etwas gutem Willen gehts schon (ist halt nur Schreibarbeit):

where myfiled like('%' concat x'00' concat '%')
or myfiled like('%' concat x'01' concat '%')
or myfiled like('%' concat x'02' concat '%')
:
:

Über die Performance brauchen wir hier wohl nicht zu diskutieren.

BenderD
03-11-04, 15:38
@Baldur: das reicht noch nicht, undruckbar hängt auch vom Job ab.

Dieter


Mit etwas gutem Willen gehts schon (ist halt nur Schreibarbeit):

where myfiled like('%' concat x'00' concat '%')
or myfiled like('%' concat x'01' concat '%')
or myfiled like('%' concat x'02' concat '%')
:
:

Über die Performance brauchen wir hier wohl nicht zu diskutieren.

Fuerchau
03-11-04, 16:17
Meinst du nun die CCSID oder doch mehr metaphysisch ;) ?

BenderD
03-11-04, 16:52
es waren ausreichend oder in der Aussage, die Antwort lautet ja
:)))


Meinst du nun die CCSID oder doch mehr metaphysisch ;) ?

M Scheid
04-11-04, 13:03
Danke schon mal für die Antworten.

Vielleicht sollte ich mein Problem etwas detaillierter beschreiben:
Ich wollte einen Datensatz einer Tabelle in einem 5250-DSPF anzeigen. Es erfolgte ein Absturz wegen eines permanenten E/A-Fehlers. Ich fand dann heraus, dass ein Attribut dieses Datensatzes Zeichen (z.B. ŷ₫º±) enthält, die in einem 5250-DSPF wohl nicht angezeigt werden können. Um nun weitere Abstürze zu bermeiden, wollte ich wissen, wie ich rausfinden kann, ob es noch mehr solcher fehlerhaften Datensätze gibt.

Fuerchau
04-11-04, 13:26
Dann hilft dir vielleicht die SQL-Funktion TRANSLATE !

select ...
where myfield <> translate(myfield, ' ', x'000102......3F')