Using WHERE clause for a VARCHAR () FOR BIT DATA column

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/using-where-clause-for-a-varchar-for-bit-data-column_257210/page_1 - zur Vollversion wechseln!


daisho schrieb am 13.01.2021 um 09:25

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 schrieb am 13.01.2021 um 09:33

hilft dir das?

https://bytes.com/topic/db2/answers...a-column-string


MightyMaz schrieb am 13.01.2021 um 09:42

Vielleicht hilft das hier weiter:
https://bytes.com/topic/db2/answers...a-column-string

So weit ich es verstehe muss man wohl den Hex Wert erst konvertieren und dann wieder einfügen.


daisho schrieb am 13.01.2021 um 11:34

Das hat schon einmal weiter geholfen, gibt zumindest keine syntax errors.
Derzeit:

Code: SQL
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).




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025