Ich habe eine Tabelle, die wie folgt erstellt wird:Was ist der Unterschied zwischen der Konvertierung in hex auf dem Client-Ende und der Verwendung von Rawtohex?
CREATE TABLE bin_test
(id INTEGER PRIMARY KEY, b BLOB)
Verwendung von Python und cx_Oracle, wenn ich dies tun:
value = "\xff\x00\xff\x00" #The string represented in hex by ff00ff00
self.connection.execute("INSERT INTO bin_test (b) VALUES (rawtohex(?))",
(value,))
self.connection.execute("SELECT b FROM bin_test")
ich schließlich mit einem Hex-Wert von a000a000
, das nicht am Ende ist richtig! Aber wenn ich das tue:
import binascii
value = "\xff\x00\xff\x00"
self.connection.execute("INSERT INTO bin_test (b) VALUES (?)",
(binascii.hexlify(value,)))
self.connection.execute("SELECT b FROM bin_test")
Ich bekomme das richtige Ergebnis. Ich habe hier ein Typumwandlungssystem, aber es ist ein bisschen schwierig, es hier zu beschreiben. Kann mir also jemand in die richtige Richtung zeigen, ob ich auf SQL-Ebene etwas falsch mache oder ob etwas Seltsames mit meinen Conversions passiert?