22

.txt ファイルを PostgreSQL にインポートしようとしています。txt ファイルには 6 つの列があります。

Laboratory_Name Laboratory_ID   Facility    ZIP_Code     City   State

そして213行。

このコマンドを使用して、このファイルの内容を PostgreSQL で\copy呼び出されるテーブルに入れるために使用しようとしています。doe2

\copy DOE2 FROM '/users/nathangroom/desktop/DOE_inventory5.txt' (DELIMITER(' '))

それは私にこのエラーを与えます:

missing data for column "facility"

このエラーが発生したときに何をすべきかを調べましたが、何も役に立ちませんでした。他の誰かがこれに遭遇しましたか?

4

3 に答える 3

10

次の 3 つの原因が考えられます。

  1. ファイルの 1 つ以上の行に 4 つ以下のスペース文字 (区切り文字) しかありません。

  2. 1 つまたは複数のスペース文字が (誤って) エスケープされました。おそらく、引用符で囲まれていない値の最後にバックスラッシュを付けます。使用している(デフォルトの)text形式について、マニュアルでは次のように説明されています。

    バックスラッシュ文字 ( \) をデータ内で使用して、COPYそうでなければ行または列の区切り文字として解釈される可能性のあるデータ文字を引用できます。

レイアウトが一致するテーブルから読み取る場合、これらのエラーのいずれかからの出力COPY TOまたは表示されません。pg_dumpしかし、ファイルが編集されているか、別の不完全なソースからのものではないでしょうか?

  1. 使用していると思われるファイルを使用していません。\copypsql コマンドライン インターフェイスのメタコマンドは、クライアントCOPYのローカル ファイルのラッパーであり、ファイルを読み取ります。ファイルがサーバー上にある場合は、代わりに SQL コマンドを使用してください。COPY
于 2014-11-05T01:30:52.683 に答える