FEHLER: fehlende Daten für die Spalte bei Verwendung von \ copy in psql

8

Ich versuche eine .txt-Datei in PostgreSQL zu importieren. Die TXT-Datei hat 6 Spalten:

%Vor%

Und 213 Zeilen.

Ich versuche, \copy zu verwenden, um den Inhalt dieser Datei mit diesem Befehl in eine Tabelle namens doe2 in PostgreSQL zu setzen:

%Vor%

Es gibt mir diesen Fehler:

%Vor%

Ich habe mich rundherum umgeschaut, was ich tun kann, wenn ich auf diesen Fehler stoße und nichts hat geholfen. Hat jemand anderes dieses angetroffen?

    
nathanmgroom 05.11.2014, 00:33
quelle

1 Antwort

4

Drei mögliche Ursachen:

  1. Eine oder mehrere Zeilen Ihrer Datei haben nur 4 oder weniger Leerzeichen (Ihr Trennzeichen).

  2. Ein oder mehrere Leerzeichen wurden (versehentlich) maskiert. Vielleicht mit einem Backslash am Ende eines nicht angegebenen Wertes. Für das (default) text -Format, das Sie verwenden, erklärt das Handbuch:

      

    Backslash-Zeichen ( \ ) können in den COPY -Daten verwendet werden, um Daten zu zitieren   Zeichen, die sonst als Zeilen- oder Spaltenbegrenzer verwendet werden könnten.

Die Ausgabe von COPY TO oder pg_dump würde keinen dieser Fehler beim Lesen aus einer Tabelle mit passendem Layout anzeigen. Aber vielleicht wurde Ihre Datei bearbeitet oder stammt von einer anderen, fehlerhaften Quelle?

  1. Sie verwenden nicht die Datei, die Sie glauben , die Sie verwenden. Der \copy -Meta-Befehl der Befehlszeilenschnittstelle psql ist ein Wrapper für COPY und liest lokale Dateien für den Client . Wenn sich Ihre Datei auf dem Server befindet, verwenden Sie stattdessen den SQL-Befehl COPY .
Erwin Brandstetter 05.11.2014 01:30
quelle