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 の段階で含まれていたため、実現できませんでした。

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

mysql 環境を確認する方法

2010-04-21 12:59:27 | RDBMS
mysql の環境を確認する場合、status コマンドを使うと確認することができます。

[mysqluser@centos mysql]$ mysql -u mysqluser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 237
Server version: 5.0.37-standard MySQL Community Edition - Standard (GPL)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.37, for pc-linux-gnu (i686) using readline 5.0

Connection id:          237
Current database:
Current user:           mysqluser@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.37-standard MySQL Community Edition - Standard (GPL)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /usr/local/mysql/mysql.sock
Uptime:                 12 days 1 hour 14 min 22 sec

Threads: 1  Questions: 2025  Slow queries: 199  Opens: 30  Flush tables: 1  Open tables: 23  Queries per second avg: 0.002
--------------

mysql>

pgAdmin III

2009-04-07 16:21:21 | RDBMS
postgreSql 用の GUI 管理コンソール

pgAdmin III http://www.pgadmin.org/

なかなかいい感じです。

ただ、Vista だとレジストリ書き込みエラーやら、いっぱいでてきてます。これは今後の宿題。