Using WHERE clause for a VARCHAR () FOR BIT DATA column
daisho 13.01.2021 - 09:25 3510 3
daisho
SHODAN
|
Ich bastle mir gerade ein query für eine DB2 Datenbank und in der WHERE Klausel befindet sich leider eine column die als VARCHAR () FOR BIT DATA abgespeichert ist. Die übliche String-Schreibweise funktioniert hier leider nicht.
z.B. SELECT * FROM schema.table WHERE content = '1000';
gibt kein Ergebnis, weil ein einfacher SELECT Output der column "content" in dem Beispiel "31 30 30 30 00" wäre (die letzte 00 ist nur ein termination byte). Ich vermute man muss hier den Wert (z.B. hier 1000) irgendwie zu einem BIT DATA string casten o.Ä., hat da jemand eine einfache Lösung dafür bzw. korrekte Syntax? (bin leider nicht so der DB2 Profi ...)
|
murcielago
Dr. Doom
|
|
MightyMaz
hat nun auch einen Titel
|
Bearbeitet von MightyMaz am 13.01.2021, 09:47
|
daisho
SHODAN
|
Das hat schon einmal weiter geholfen, gibt zumindest keine syntax errors. Derzeit: SELECT * FROM schema.table WHERE content = CAST (1000 AS VARCHAR(100) FOR BIT DATA);
Allerdings gibt das keine Ergebnisse. Ich vermute der CAST erstellt hier vermutlich 31 30 30 30 aber macht keinen NULL-terminated string daraus (31 30 30 30 00; schlicht nach 10000 suchen bringt allerdings ebenfalls nichts weil das in hex "30" wäre und nicht "00" schätze ich einmal).
|