Lunatic Sol

IT Tips

UTF-8 フォーマットの TSV ファイから SQL Server にインポートする方法

2010-08-02 21:33:58 | RDBMS
SQL Server にデータをインポートする方法としては、大きく以下の2種類がある模様。



ただし、両方とものアプローチに共通して言えるのは、UTF-8 (Codepage 65001) はサポートしていないという点。これは、SQL Server そのものが UTF-8 をサポートしておらず、Unicode としては UCS-2 をサポートしているためであると思われる。

では、どのようにして UTF-8 形式の TSV (Tab Separated File = タブ区切りファイル) をインポートするのがいいのか、というのを考えてみたところ、結局は UTF-8 ==> UCS-2 変換を行い BULK INSERT もしくは bcp にて wide 指定してインポートするという流れになる模様。


  1. テキストエディタやツールなどを用いて UTF-8 形式の TSV ファイルを UCS-2 に変換

  2. bcp ユティリティーを使用してインポート

  3. bcp "database_name.dbo.table_name" in Unicode.tsv -w -T -S sqlserver_host




ちなみに、当初、よくわからずに Codepage 932 (sjis) に変換しようとしていましたが、sjis 範囲外の文字が UTF-8 の段階で含まれていたため、実現できませんでした。

他にも良い方法がありましたら、コメントよろしくお願いします。

最新の画像もっと見る