Vor ein paar Tagen, warst Du der Meinung ich wäre schon Japaner.
Seit dem habe ich daran nichts geändert.
In der Reference finde ich:
Name Description Language Server? Bytes/Char Aliases
SJIS Shift JIS Japanese No 1-2 Mskanji, ShiftJIS, WIN932, Windows932
Server Character Set Available Client Character Sets
SJIS not supported as a server encoding
Kann es das wirklich sein?!
Offensichtlich ist das Encoding (wohl auf Serverseite) aber so gesetzt. Und die Daten, die die Clientseite sendet, passen da nicht rein.
Ich empfehle dir, im Online Handbuch mal zu Server Encoding und Client Encoding nachzulesen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Um das noch einmal zu erklären:
meine DB läuft mit UTF8.
Ich hab nun mal wild client_encoding gesetzt, und wie man sieht, gibt es Fälle, wo das dann bei identischen Daten, die ich einzugeben versuche, nicht funktioniert.Code:test=# set client_encoding='latin2'; SET Zeit: 39,177 ms test=*# insert into testdata (tabellenspalte1) values ('äöü'); INSERT 0 1 Zeit: 0,270 ms test=*# rollback; ROLLBACK Zeit: 0,224 ms test=# set client_encoding='latin3'; SET Zeit: 0,193 ms test=*# insert into testdata (tabellenspalte1) values ('äöü'); ERROR: character 0xc3 of encoding "LATIN3" has no equivalent in "UTF8" test=!# rollback; ROLLBACK Zeit: 0,130 ms test=# set client_encoding='SJIS'; SET Zeit: 0,087 ms test=*# insert into testdata (tabellenspalte1) values ('äöü'); INSERT 0 1 Zeit: 0,243 ms test=*#
Meine Frage, ob Du Japaner bist, rührte daher, daß in einem Deiner Postings Du das SJIS als Encoding verwendet hast. Möglicherweise war Dir nicht klar, was das ist und welche Folgen das hat.
Summa summarum: das, was Du eingeben willst, muß sowohl durch die DB abbildbar sein als auch vom Client so kommen, daß es nötigenfalls in das Server-Encoding transformiert werden kann. Klappt das nicht, kommen die Dir bekannten Fehler.
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Für denjenigen, der viel Erfahrung hat, nerve ich vielleicht. Mein Problem ist offensichtlich zu trivial, aber für meine Verhältnisse habe ich mich hier in Welten vorgewagt, die ich vorher noch nie betreten habe (oder musste) und gehöre nicht zur Trivialitätsentität. Deshalb bitte ich um etwas Rücksicht und tatsächliche Hilfe. Würde ich die Reference auswendig kennen, müsste ich hier nicht fragen.
Außerdem bin ich mittlerweile mit den Nerven zu Fuß und kann nicht noch Tage diesem Problem hinterherlaufen.
Mein jetziger Stand:
Ist jemand willens mir zu helfen und mir kurz mal in Befehlen aufschreiben, wie ich dieses Problem schnell löse?Code:kani=# show server_encoding; server_encoding ----------------- UTF8 ---Server encoding also auf UTF8 (1 row) kani-# \encoding ---ist das nicht das Client encoding? dann wäre das doch auf SJIS SJIS
Sorry Andreas, ich wollte dich nicht anpaulen. Da sind unser posts wohl über Kreuz gelaufen. Und wenn man noch nicht einmal die Steine sieht auf die man springen soll...
Hier noch etwas Neues: Ich habe die csv-Datei von allen Umlauten gereinigt (!) und erhalte trotzdem:
Code:kani=# COPY agns FROM E'D:\\agns II.csv' WITH DELIMITER ';' CSV HEADER ; ERROR: invalid byte sequence for encoding "SJIS": 0xe13b HINT: This error can also happen if the byte sequence does not match the encodi ng expected by the server, which is controlled by "client_encoding". CONTEXT: COPY agns, line 40688
Hallo Alfredo,
ich hatte das Problem bisher noch nicht, aber was mir einfällt:
Was passiert wenn du direkt vor dem copy-befehl das client-encoding setzt?:
Ich hab nur leider keine Ahnung wie das Encoding unter Windows normalerweise aussieht, vielleicht
als SQL-Befehl direkt vor dem copy.Code:SET CLIENT_ENCODING='WIN1252';
Wo genau kommt die Datei denn her? Wenn die unter einem anderen Betriebssystem erstellt wurde könnte auch das das Problem sein.
Gruß
der Sparrow
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Hallo Sparrow,
Deinen Tipp probier ich morgen aus und werde berichten. Bin etwas fertig heute, deshalb schwächle ich.
Die Dateien sind immer auf Windows gelaufen . Es sind 5 relational verknüpfte dBase-Dateien aus einer selbstgestrickten Datenbank inkl. Graphical Frontend (nicht von mir). Es werden von mir nach wie vor Daten eingegeben, die Datenqualität ist unterirdisch, es läuft auf einem Windows 98 Rechner und stürzt dauernd ab. Deshalb hege ich den dringenden Wunsch, dieses alte Programm mit der DB zu erneuern und endlich etwas vernünftiges davon zu machen. Der Export funktioniert über eine mit arj gestuffte Datei, die dann die 5 dBase-Dateien enthält.
Bei der Installation von PostgreSQL, die ich vollständig und das erste Mal vor mittlerweile ganzen 4 Tagen bewerkstelligt habe, habe ich im Fenster "Datenbank-Cluster initialisieren" bei Encoding .... und Client.... nur eine Kombination gefunden, die überhaupt funktionierte. Das war dummerweise UTF8 und SJIS. Mit LATIN1 funktionierte bei Client gar nichts.
Mir ist vollkommen egal warum! Für mich ist das "was-nun?" viel wichtiger. Also was schlägst du vor? Welche Kombination soll ich wie einstellen?
Grüße
Carsten
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Moin moin,
das Problem mit dem encoding scheint gelöst zu sein. Es funktioniert wohl mit LATIN1, UTF8 hat nicht geklappt. Vielen Dank so weit.
Mein nächstes Problem sind wohl NULL-strings. Die Datei hat viele. Ich fang schon mal an zu basteln. Und melde mich, wenn ich soweit bin. Falls ihr vorher schoin mal einen Tipp hättet, würde ich mich freuen.
Code:kani=# SET CLIENT_ENCODING='UTF8'; SET kani=# \encoding UTF8 kani=# COPY agns FROM E'D:\\agns.csv' WITH DELIMITER ';' CSV HEADER ; ERROR: invalid byte sequence for encoding "UTF8": 0xdc52 HINT: This error can also happen if the byte sequence does not match the encodi ng expected by the server, which is controlled by "client_encoding". CONTEXT: COPY agns, line 4420 kani=# SET CLIENT_ENCODING='LATIN1'; SET kani=# \encoding LATIN1 kani=# COPY agns FROM E'D:\\agns.csv' WITH DELIMITER ';' CSV HEADER ; ERROR: missing data for column "foto" CONTEXT: COPY agns, line 57345: "DLT000002525;032015000;---;1;00001800;$HAEUP;4 524"
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen