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

システム開発ブログ

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

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

フォーマットファイルの区切り文字指定に一工夫

千葉
千葉 (2009年11月27日 11:00)
ソフトウエア開発部 / データベース

以前、csvファイルのデータをSQL Serverへ取り込む必要があり、
BCPコマンドを利用する機会がありました。

その時はフォーマットファイルを用いてcsvファイルの取り込みを行ったのですが、
ダブルクォーテーションで囲まれたデータの取り込みが思うようにいかずに苦労しました。

例として、次のようなサンプルデータを考えます。

"1","東京都","5940"
"2","大阪府","4660"
"3","京都府","570"

●区切り文字をカンマとした場合

9.0
3
1 SQLCHAR 0 255 "," 1 id Japanese_CI_AS
2 SQLCHAR 0 255 "," 2 name Japanese_CI_AS
3 SQLCHAR 0 255 "\r\n" 3 dens Japanese_CI_AS

取り込みを行った結果がこちらです。
id name dens
-------------------------
"1" "東京都" "5940"
"2" "大阪府" "4660"
"3" "京都府" "570"

このままでは、ダブルクォーテーションまで一緒に取り込まれており、
処理を行う際に邪魔になります。

対処法の一つとして、SQL Server上で取り除く処理を行う事が考えられますが、
余計な手順が増え、あまり望ましくありません。

しかし、フォーマットファイルの内容を工夫することで、
インポートを行う際にダブルクォーテーションを取り除いて取り込む事が出来ます。

-----手順-----
1.先頭のダブルクォーテーションを取り除くために、ダミーとなる列を仮定します。
  先頭にデータの入っていない列があると考え、区切り文字として「"」を指定します。

2.二列目以降の区切り文字に、ダブルクォーテーションを含めた「","」を指定します。

3.最後に、最終列の区切り文字を「"\r\n」とすれば、修正は完了です。
--------------

●修正後

9.0
4
1 SQLCHAR 0 0 "\"" 0 dummy Japanese_CI_AS
2 SQLCHAR 0 255 "\",\"" 1 id Japanese_CI_AS
3 SQLCHAR 0 255 "\",\"" 2 name Japanese_CI_AS
4 SQLCHAR 0 255 "\"\r\n" 3 dens Japanese_CI_AS

再度取り込みを行った結果はこのようになります。

id name dens
-------------------------
1 東京都 5940
2 大阪府 4660
3 京都府 570

このように、区切り文字指定を工夫する事で求めるデータだけを取り出すことが可能です。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  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で。ぜひ、フォローをお願いします。