.txtファイルをPostgreSQLにインポートしようとしています。 txtファイルには6つの列があります。
Laboratory_Name Laboratory_ID Facility Zip_Code City State
そして213行。
次のコマンドを使用して、\copy
を使用して、PostgreSQLのdoe2
というテーブルにこのファイルの内容を入れようとしています。
\copy DOE2 FROM '/users/nathangroom/desktop/DOE_inventory5.txt' (DELIMITER(' '))
それは私にこのエラーを与えます:
missing data for column "facility"
私はこのエラーが発生したときに何をすべきかを周りを見回しましたが、何も助けにはなりませんでした。他の誰かがこれに遭遇しましたか?
3つの考えられる原因:
ファイルの1行以上に、4文字以下のスペース文字(区切り文字)しかありません。
1つ以上のスペース文字が(偶然に)エスケープされました。引用符で囲まれていない値の最後にバックスラッシュが付いている可能性があります。使用している(デフォルト)text
フォーマットの場合 マニュアルで説明:
バックスラッシュ文字(
\
)をCOPY
データで使用して、行または列の区切り文字として使用される可能性のあるデータ文字を引用できます。
COPY TO
またはpg_dump
からの出力では、レイアウトが一致するテーブルから読み取るときに、これらの障害は発生しません。しかし、ファイルが編集されているか、または別の欠陥のあるソースからのものである可能性がありますか?
\copy
メタコマンドはCOPY
のラッパーであり、 client のローカルファイルを読み取ります。ファイルがサーバー上にある場合は、代わりにSQLコマンド COPY
を使用します。