こんばんは。今回はAzure SQL Databaseでちょっとつまづいたことがあったので対処法をメモっておきます。
問題
Azure SQL Databaseに、CSVファイルをBULK INSERTしたところ日本語が文字化けした。
原因と解決方法
ネットを探してよくみかけたものは、Azure SQL Databaseの照合順序に起因するというもの。Azure SQL Databaseでは照合順序があとから変更できないので、照合順序を変えたいなら列毎に指定するしかない模様。
理由の解説はリンク先のブログに譲ります・・
ところが今回はこれでは解決しませんでした。
また、こんな記事もみつけました。なるほど、varcharでなくnvarcharを使うとそもそも文字化けしなくなると。
ただ、nvarcharに変更してみたけど、それでも文字化けする・・・なぜだ・・・
こちらのブログが解決につながりました。
UTF-8 形式のテキストファイルを BULK INSERT で一括取り込みする( SQL Server )
BULK INSERTでutf-8を読み込むためには追加の引数の指定が必要っぽい。
BULK INSERT T_Table
FROM 'xxxx.txt'
WITH (
DATAFILETYPE='char'
, CODEPAGE = '65001'
, FIELDTERMINATOR = ','
);
GO
確かにこれでうまくいった。以下にも似たような質問があって、CODEPAGEは932でもいけるっぽい。
とりあえず解決できてよかった。
おしまい
コメントを残す