Ich möchte Bytes in meine PostgreSQL (9.5.7) Datenbankspalte mit dem Typ bytea
einfügen, mit dem Psycopg2 (2.7.1) copy_from() Methode.PostgreSQL - Psycopg2 - copy_from - Ungültige Bytefolge für die Codierung "UTF8": 0x00
Ich kann mein Bytes mit dem folgenden Code ein:
psycopg2_cursor.copy_from(
StringIO("\x30\x40\x50"),
"my_table",
)
durch Ausführen eine SELECT in meinen Tisch nach dem Einsetzen, erhalte ich den erwarteten Wert von der bytea Spalte:
\x304050
Jetzt möchte ich meine Bytes mit dem Byte 0:
psycopg2_cursor.copy_from(
StringIO("\x00\x30\x40\x50"),
"my_table",
)
voranstellen
Ich erhalte den Fehler: psycopg2.DataError: Ungültige Byte-Sequenz für die Codierung "UTF-8": 0x00. Aus meiner Sicht sollte dieser Fehler nur beim Einfügen eines Null-Bytes in ein Textfeld ausgelöst werden, sollte aber wie erwartet in einem Bytea-Feld funktionieren. Fehle ich etwas? Gibt es eine einfache Möglichkeit, ein Null-Byte in eine Bytea-Spalte einzufügen?
Danke!
was ist Ihr 'standard_conforming_strings' Einstellung? –
hast du 'StringIO ('\ x30 \ x40 \ x50')' stattdessen? .. –