AccessでOracleテーブルの日本語が文字化けする場合の対処法・解決策

AccessでOracleのリンクテーブルを開くと、なぜか日本語が文字化けしてしまう場合の対処法をご紹介します。

とある日、知人から「AccessでOracle上のテーブルをリンクして中のデータを表示しているのですが、日本語だけが文字化けします!」

知人
日本語だけが文字化けするんです・・・

これを解決したときのメモです。

Oracleテーブルの日本語が文字化けする現象と原因

現象

今回の例では、Oracleテーブル上で氏名データを管理していました。

当然氏名は日本語です。氏名カラムのレコード(データ)が「????」「?? ??」「??? ??」などのように文字化けして表示されるのです。

コード氏名
001????
002?? ??
003???? ??

原因

今回の例では「Oracleサーバ」「クライアントPC」文字コード設定が合っていないことが原因でした。

Oracleテーブルの日本語が文字化けする場合の対処法・解決策

Oracle側の文字コード確認

まずコマンドプロンプトを管理者権限で起動します。

次に以下の通りに入力します。

※ユーザ名やTNSネーム名などが不明な場合はOracleサーバ管理者にお問い合わせください。

sqlplus
[ユーザ名]@[OracleサーバTNSネーム名]
[パスワード]
SELECT VALUE
FROM NLS_DATABASE_PARAMETERS
WHERE PALAMETER = ‘NLS_CHARACTERSET’;

これは、Oracleサーバ上のNLS_DATABASE_PARAMETERSテーブルからNLS_CHARACTERSETの値を取得するSQL文です。

実行すると、Oracleサーバに設定されている文字コードを取得できます。

※以下のようにコマンドプロンプトに表示される

VALUE
————————————————
文字コード(JA16SJISTILDEなど)

クライアントPCの文字コードをOracleに合わせる

環境変数設定で、NLS_LANG」に先ほど確認したOracleサーバに設定されている文字コードを設定します。

例えば、JA16SJISTILDEの場合は、次のように設定します。

「スタートメニュー」⇒「コントロール パネル」⇒「システムとセキュリティ」⇒「システム」画面を開きます。

「システムの詳細設定」をクリックすると、「システムのプロパティ」画面が開きますので、「環境変数」をクリックします。

以下の通りに「NLS_LANG」に「JAPANESE_JAPAN.JA16SJISTILDE」を設定します。

これで設定はすべて完了です。

動作確認

再起動することなく再度AccessでOracleリンクテーブルを開いてみると、日本語が正しく表示されました。

知人
日本語が表示されています!!

まとめ

今回は、AccessでOracleのリンクテーブルを開くと、なぜか日本語が文字化けしてしまう場合の対処法・解決策についてご紹介しました!

簡単にまとめると「Oracleサーバ側の文字コードを確認して、クライアントPCの環境変数「NLS_LANG」に確認した文字コードを設定する」ということです。

この記事がみなさまのお役に立てましたら幸いです!

Access使い方・便利技・トラブル対処まとめはこちら↓

今回はAccessのクエリ・フォーム・レポート、VBAの使い方や便利技とトラブル対処法まとめです。よく使うものだけを厳選して...

シェアする

  • このエントリーをはてなブックマークに追加

フォローする