システム開発ブログ/ ソフトウエア開発部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

PostgreSQLのCSV取り込み

松本
松本 (2009年2月16日 14:28)
ソフトウエア開発部

PostgreSQLでCSV等のファイルから、テーブルにデータを取り込む方法は、
メタコマンドの[/copy]を使用する方法と、SQLから[COPY]文を使用する方法があります。

メタコマンドの[/copy]は、コマンドを実行したホスト上のファイルを操作し、
SQLの[COPY]文は、PostgreSQLサーバ上のファイルを操作するという違いがあります。

今回は、SQLの[COPY]文を使用する際のポイントを3つ、ご紹介します。

■ポイント1「パスの指定に注意!」

まずは、基本的な構文です。

     COPY [テーブル名] FROM [ファイルの絶対パス];

ファイルの絶対パスを指定する際に気をつけなければならないのは、
バックスラッシュ(\)をエスケープする必要があるということです。
(例:C:\\Program Files\\PostgreSQL)

■ポイント2「TIMESTAMP型に注意!」

取り込み先のテーブルにTIMESTAMP型がある場合、
TIMESTAMP型の項目に空文字を取り込もうとすると、エラーが発生します。
日付型に変換できないので、不正なデータだと判断されるようです。

この場合は、空文字をNULLとして扱うという指定(WITH NULL AS '')をすれば、回避できます。

     COPY [テーブル名] FROM [ファイルの絶対パス] WITH NULL AS '';

■ポイント3「文字コードに注意!」

PostgreSQLの文字コードと、取り込むファイルの文字コードが違う場合もあると思います。

PostgreSQLでは、SQL文から文字コードの設定をすることができます。

     SET client_encoding TO '[文字コード]';

Shift-JISのファイルを取り込みたい場合には、[SET client_encoding TO 'SJIS';]と指定することで、取り込めるようになります。


私は普段SQLServerを使用した開発に携わることが多いので、
PostgreSQLには戸惑いましたが、色々と調べていると面白いです。

※動作確認は、PostgreSQL8.2.5で行いました。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。