Query Tool Verhalten unterscheidet sich von Command Line Verhalten

Hi,

für den automatisierten Import aus einer *.UNI Datei in meine Datenbank (postgres 8.4.2) habe ich eine batch Datei geschrieben, deren Inhalt ungefähr so aussieht:

C:\Programme\PostgreSQL\8.4\bin\psql.exe -h … -p … -d … -U “…” -f “C:…\copy_parts.sql”

In copy_parts.sql steht ein einfacher copy Befehl:

\copy parts from C:/…/PARTS.UNI

Bis jetzt hat das auch immer gut funktioniert. Aber seit ein paar Tagen bekomme ich beim Ausführen der Batch Datei die folgende Fehlermeldung:

“Error: value too long for type character varying(30)”

Wenn ich nun aber unter pgAdmin III (Version 1.10.1) im Query Tool den Befehl

copy parts from ‘C:/…/PARTS.UNI’

ausführe, wird der Import ohne Fehlermeldung durchgeführt und die Zeichen, die zu viel sind, werden abgeschnitten.

Meine Frage ist nun, warum sich das Query Tool unterschiedlich zur Kommandozeileneingabe verhält, bzw. wie ich das Verhalten des Query Tools auch für meine Batch Datei erhalte?

Danke schon mal für eure Antworten

Wenn PGAdmin das ohne Zucken abschneidet, dann ist das MySQL-Niveau und ein Fehler. Schreibe bitte einen zünftigen Bugreport!

Und ja: wenn Du den text komplett in der DB haben willst, dann verändere den Datentyp der Spalte, TEXT ist hier eigentlich anzuraten. Wenn Du das abgeschnitten haben willst, dann editiere den Dump. Oder aber importiere in eine Zwischentabelle und von da aus mit SQL-Mitteln (substring()) in die Zieltabelle.


Andreas

Liest du die gleiche Datei? In die gleiche Tabelle? Die Daten sind danach wirklich importiert?

An sich werden beide Befehle nicht vom Frontend (psql, pgAdminIII) ausgeführt, sondern direkt von der Datenbank.
Daher dürfte sich an der Ausführung nichts unterscheiden.