embulkを使ってOracle Databaseからデータ抽出する際の文字化け解決

embulkを使ってOracle Databaseからデータを抽出する際に、日本語が含まれたデータが文字化けしていた。

SQLPlusを使って接続して確認した際も日本語が文字化けている。

データベース自体の文字コードはSJISが設定されており問題なかった。

SQL> SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER LIKE '%CHARACTERSET';
PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16
NLS_CHARACTERSET
JA16SJISTILDE


そもそもデータを投入する際に日本語が文字化けていた。

→ クライアント側に適切な文字コードを設定する必要があった。

調べてみると、


NLS_LANGという環境変数にクライアント環境に適した文字コードを指定する必要があるみたい。

環境変数のNLS_LANGにJapanese_Japan.AL32UTF8を設定することで解決

$ vi ~/.bash_profile
export NLS_LANG=Japanese_Japan.AL32UTF8

$ source ~/.bash_profile

知らないと調べる手間が起るのでメモ…

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください