
かなり困っています。REDHAT LINUXでpostgresのテーブルにpsqlからのCOPYコマンドでcsvファイルのデータをインポートしようとしているのですが、文字数オーバーのエラーがでてしまいます。テーブルは2列で1つ目の列はCHAR(10)で2列目はINT4型です。csvファイルの内容はとりあえず1行だけ入れていて「"1234567890","1234"」を入れています。コマンドはpsqlで「COPY テーブル FROM 'ファイルのパス' USING DELIMITER ","」で行いました。エラーはおそらくインポートしたデータがおかしくなって変な桁数になっているのですが、どういうふうにおかしくなっているのかがよくわからないので対策できません。
No.1ベストアンサー
- 回答日時:
案1)エディタ等を使って、二重引用符を除去してからインポートさせる。
案2)インポートするのに十分なレコード長をもったインポート専用テーブルを作成して、そこに一旦インポートさせてから、適当に加工して目的のテーブルにinsertする。
案3) copy with csvが使えるバージョンにあげる。
――とか。
こんにちは。おかげさまで解決しました。アクセス経由のODBCでのインポートすることになりました。確かに別テーブル経由だとコマンド一発でできそうでスッキリしますのでそちらのほうがよかったかもしれませんね。
No.2
- 回答日時:
「"」(ダブルクォーテーション)も文字数に換算されているので、
「"1234567890"」は12文字のデータをINSERTしようとしてエラーになっているのだと思います。
また、2カラム目はINTEGERとのことなので、そもそもクォーテーションやダブルクォーテーションで囲ったらよくないです。^^
ダブルクォーテーションを外して試してみてください。
こんにちは。おかげさまで解決しました。ダブルコーテーションも原因でしたが、CSVのデータの行の一番後ろに改行コードが入っていてそれがINTEGER型のカラムでひっかかっていました。結局はアクセス経由のODBCでのインポートになりました(~~)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLでUPSERTを一度に複数行やる...
-
SQLにて指定日付より前、かつ最...
-
SELECT 文の NULL列は?
-
MS Access から PostgreSQL へ...
-
最新レコードを抽出し外部結合...
-
複数テーブルにまたがるmax
-
postgreSQL カラムの全ての値を...
-
javaでデータベース上のテーブ...
-
テーブルを作ろうとしたら。
-
単純なselectが遅くなるのです...
-
Postgresqlのレポート機能について
-
フィールドの入れ替えはできま...
-
同一カラムに複数条件指定
-
accessとバーコードリーダー
-
Postgresのデータ領域の拡張に...
-
postgres FILLFACTOR 確認方法
-
PostgreSQLのリンクテーブル?...
-
PostgreSQL レコードからアイテ...
-
テーブルに存在しない列をselec...
-
投稿記事と関連付けているテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
SQLにて指定日付より前、かつ最...
-
単純なselectが遅くなるのです...
-
テーブルに存在しない列をselec...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
Postgresのデータ領域の拡張に...
-
PostgreSQL レコードからアイテ...
-
javaでデータベース上のテーブ...
-
MS Access から PostgreSQL へ...
-
Postgresqlのレポート機能について
-
デットロック回避策(autocommit...
-
異なるデータベースでのINSERT...
-
テーブルにcsvファイルをインポ...
-
VIEWのCOPYってできないんですか?
-
reindex と update のデッドロック
-
UPDATE文の更新順序について
-
テーブルを作ろうとしたら。
-
レコードを1件のみ取得した後...
おすすめ情報