[pgsql-jp: 41298] Re: CSVデータの取り込みで入力構文が無効のエラーが発生する

FUKUSHIMA Katsuaki kfukushima @ sis.seino.co.jp
2012年 12月 4日 (火) 11:53:50 JST


福島です。

CSV ファイルの先頭に BOM が付いていませんか。
例えばテキストエディタにメモ帳を利用して UTF-8 で保存されると、ファ 
イルの先頭に BOM が付加されます。
もしそうであれば BOM の付加を調整できるエディタ(例:サクラエディタ)を 
利用してみて下さい。

またネットを検索するときのポイントですが、日本語のエラーメッセージで 
はヒットしにくいので SQL STATE での検索をおすすめします。


(2012/12/04 11:13), tanaka5 @ ryomo.co.jp wrote:
> 初めて投降させていただきます。
> 質問の作法等で不足、誤りなどがありましたら申し訳ありません。
> また、急遽、PostgreSQLを使用することになったばかりの初心者ですので、
> 基本的なことがわかっていないかもしれません。
> お手数をお掛けして申し訳ありませんが、よろしくお願いいたします。
>
> 環境
> OS:Windows 7 Professional SP1 (32bit、64bitどちらでも再現)
> DB:PostgreSQL9.2.1
>
> データベース設定
> エンコーディング:UTF8
> 文字型:Japanese_Japan.932
>
>
> 上記環境にて、Windows7にPostgreSQLをインストールして、テーブルを作成し、
> そのテーブルにCSVデータを取り込みたいと考えています。
> テーブル、CSVファイルを作成して、pgAdmin3から、Importを実施したところ、エラーが発生しました。
>
> 別の方法で、SQLエディタを用いて下記を試しましたが、同様のエラーが発生しました。
>
> CREATE TABLE csv_test (
> ph_id int,
> ph_name varchar(100)
> );
>
> test01.csv(内容は下記)
> "1","日本語文字列"
>
> test02.csv(内容は下記)
> 1,"日本語文字列"
>
> COPY csv_test FROM 'D:\Test\test01.csv' WITH CSV;
> COPY csv_test FROM 'D:\Test\test02.csv' WITH CSV;
>
> 上記を実行しましたが、エラーが発生。
>
> エラー内容は下記となります。
>
> ----------
> ERROR:  型integerの入力構文が無効です: "1"
> CONTEXT:  csv_testのCOPY。行番号 1。列 ph_id: "1"
>
>
> ********** エラー **********
>
> ERROR: 型integerの入力構文が無効です: "1"
> SQLステート:22P02
> コンテキスト:csv_testのCOPY。行番号 1。列 ph_id: "1"
> ----------
>
> pgsql-jp 保存書庫の過去分で、
> 「入力構文が無効」
> を検索しましたが、過去分全てで該当がありませんでした。
>
> 私なりにいろいろと試してみたのですが、全く理由がわからず、こちらに投降させていただきました。
>
> お手数をお掛けしますが、よろしくお願いいたします。
>
> 質問の方法などで足りない点がありましたらご指摘いただけるとありがたいです。
>
>
>

--
Katsuaki Fukushima at Seino Information Service Co.,Ltd.



pgsql-jp メーリングリストの案内