
かなり困っています。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ランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
テーブル定義書作成時のIndex付...
-
Postgresのデータ領域の拡張に...
-
SQLにて指定日付より前、かつ最...
-
テーブルにcsvファイルをインポ...
-
バキューム処理の実行時間の目安
-
VARCHAR型の数値比較
-
テーブルを作ろうとしたら。
-
2つのテーブルで引き算 postgres
-
PostgreSQLの断片化の状況を確...
-
DBFluteについて質問です。 環...
-
LASTVAL()の使い方
-
【HTML】テーブルの中にテーブ...
-
「テーブルに座って……」という...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
SQL、2つのテーブルで条件一致...
-
mysqlのupdate構文についての質...
-
オーダーの覚え方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
PostgreSQLの断片化の状況を確...
-
単純なselectが遅くなるのです...
-
MS Access から PostgreSQL へ...
-
javaでデータベース上のテーブ...
-
2つのテーブルで引き算 postgres
-
Postgresqlのレポート機能について
-
reindex と update のデッドロック
-
Postgresのデータ領域の拡張に...
-
デットロック回避策(autocommit...
-
テーブルにcsvファイルをインポ...
-
PostgreSQL 8.0.2 の ERROR: r...
-
PostgreSQL レコードからアイテ...
-
同一カラムに複数条件指定
-
備品管理のデータベースについて
-
PostgresSQLでテーブル定義の抽...
-
DISTINCTとGROUP BYの違い
おすすめ情報