質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

1回答

6962閲覧

PostgreSQLテーブルにCSVファイルをインポートできません。(psql バージョン 9.2)

Taka787

総合スコア23

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

2クリップ

投稿2020/01/27 01:36

編集2022/01/12 10:55

PostgreSQLテーブルにCSVファイルをインポートしようと思っていますが、以下のエラーが出て、インポートできません。自分でもいろいろ調べてやってみますがどれも解決には至りませんでした。

practice=> \copy material_master from material_master_201911.csv WITH CSV; ERROR: missing data for column "no_name5" (seg0 moore-PC87-2017.localdomain:50000 pid=3920) CONTEXT: COPY material_master, line 62914: "62914,2017/3/22,19050006,付せん紙 フィルム インデックス ,家柄,付せん紙 フィル..."

試したこと

missing data for column no_name5とあったので、その付近のCSVデータを見て、データがおかしくないか調べてみましたが特におかしいところもありませんでした。
以下の質問も参考にしましたが、解決しませんでした。
https://teratail.com/questions/179516

62914行目付近のCSV

62914,2017/3/22,19050006,付せん紙 フィルム インデックス ,家柄,付せん紙 フィルム インデックス 家柄,,1309,付せん紙,13,ノート・メモ,する,製品,でない,1,パック,200,35,0,4902810000000 ,A,,通常,,1,1,0,0,1847,齋藤 俊,である,でない,しない,しない,しない,0,,,,,,,,,,,380,しない,190,する,課売上,5,,50,する,2017/7/19,2017/7/19,である,でない,でない,でない,1701,吉田 真由美,,,392,"1,000.00",1736,田中 風実,2017/3/22 13:22,1984,,2019/12/4 9:45

テーブル構造

practice=> \d material_master1 テーブル "public.material_master1" 列 | 型 | 修飾語 ------------------------------------------+-----------------------------+--------------------------------------------------------------- no | bigint | not null default nextval('material_master1_no_seq'::regclass) application_start_date | date | item_code | integer | item | text | standard | text | product_name_formal | text | standard_formal | text | minor_classification | integer | minor_category_name | character varying(20) | medium_classification_code | integer | middle_class_name | character varying(15) | payment_category | character varying(3) | product_name_classification | character varying(3) | miscellaneous_code_classification | character varying(3) | quantity | numeric | unit | character varying(3) | capacity | numeric | weight | numeric | output_order | integer | jan_code | bigint | ab_classification | character varying(1) | copyright_code | character varying(2) | character_code | character varying(2) | table_calculation_category | character varying(2) | mold_code | integer | plastic_weight | numeric | paper_weight | numeric | manufacturing_royalties | numeric | sales_royalties | numeric | assignee_code | integer | no_name1 | text | production_suspension_classification | character varying(3) | disused_edition_classification | character varying(3) | production_date_management_category | character varying(3) | expiration_date_management_category | character varying(3) | lot_management_indicator | character varying(3) | automatic_journal_pattern_classification | integer | manufacturer_code | integer | no_name2 | text | purchase_type | integer | purchase_price | numeric | purchase_unit_price | numeric | unit_price_change_category | character varying(3) | tax_classification1 | character varying(3) | scheduling_management_classification | character varying(8) | minimum_order_quantity | numeric | order_unit | numeric | conversion_value_at_delivery | numeric | standard_retail_price | integer | hide_at_retail_price_slip | character varying(3) | standard_sales_unit_price | numeric | unit_price_change_category2 | character varying(3) | tax_classification2 | character varying(3) | minimum_shipment_quantity | integer | cost_ratio | character varying(1) | rate | numeric | change_rate_indicator | character varying(3) | release_date | date | shipping_start_date | date | input_prohibited | character varying(3) | no_reservation | character varying(3) | prohibition_of_allocation | character varying(3) | shipment_stop | character varying(3) | charge_p1 | integer | no_name3 | character varying(10) | charge_p2 | integer | no_name4 | text | country_of_origin | integer | carton_quantity | numeric | lead_time | integer | registered_employee_code | integer | no_name5 | character varying(10) | registered_date | timestamp without time zone | last_updated_employee_code | integer | no_name6 | character varying(10) | last_modified | timestamp without time zone |

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/01/27 01:44

PostgreSQL をタグに追加しておいてください。バージョンも本文に追記願います。 あと本文内の記述も調整してください。tが抜けてます。
Taka787

2020/01/27 01:47

失礼いたしました。 修正いたしました。
hihijiji

2020/01/27 01:53

山勘ですが、"付せん紙 フィルム インデックス ,家柄" のカンマの前のスペースが怪しい。 変な文字コードになってないか確認してください。
m.ts10806

2020/01/27 01:59

カラムの数と入れようとしているデータの数が合っているか確認してみてください。エラーからするとそれっぽいです
amura

2020/01/27 02:58 編集

CSV QUOTE '"'を付けてみたらどうでしょうか? ”の前にバックスラッシュいるかも 訂正です、V9.2はQUOTE指定無くても大丈夫でした。
amura

2020/01/27 03:13

ご提示されたエラーデータのカラム数は73で、テーブルは76と違いますが
guest

回答1

0

テーブルの項目数と、CSVの項目数が合っていないのです。

エラーメッセージは、no_name5以降に該当するCSVの項目が無いと云っています。

CSVの内容をテーブルの項目に対比させて状況を確認して下さい。

CSVの項目の方が少ないようですので、

COPY テーブル名(カラム名、、、) from ファイル名

のように、テーブルの項目を限定すれば良いと思います。

投稿2020/01/27 02:31

編集2020/01/27 02:36
sazi

総合スコア25138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/27 03:34 編集

そのまま質問者さんが、全角空白とか入った状態でコピペして使うことはないと思いたいけど、 念の為ドキュメント( https://www.postgresql.jp/document/9.2/html/app-psql.html )から貼っておきますね。 \copy { table [ ( column_list ) ] | ( query ) } { from | to } { 'filename' | program 'command' | stdin | stdout | pstdin | pstdout } [ [ with ] ( option [, ...] ) ] の、column_list の箇所に、使用するカラム名を","区切りで列挙します。
sazi

2020/01/27 03:35

@m6uさん フォローありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問