AccessでOracleのリンクテーブルを開くと、なぜか日本語が文字化けしてしまう場合の対処法をご紹介します。
とある日、知人から「AccessでOracle上のテーブルをリンクして中のデータを表示しているのですが、日本語だけが文字化けします!」とヘルプが。
これを解決したときのメモです。
クリックできる目次
Oracleテーブルの日本語が文字化けする現象と原因
日本語が文字化けする現象詳細
今回の例では、Oracleテーブル上で氏名データを管理していました。
当然氏名は日本語です。氏名カラムのレコード(データ)が「????」「?? ??」「??? ??」などのように文字化けして表示されるのです。
コード | 氏名 |
---|---|
001 | ???? |
002 | ?? ?? |
003 | ???? ?? |
日本語が文字化けする原因
今回の例では「Oracleサーバ」と「クライアントPC」の文字コード設定が合っていないことが原因でした。
Oracleテーブルの日本語が文字化けする場合の対処法・解決策
Oracleサーバ側の文字コード確認
まずコマンドプロンプトを管理者権限で起動します。
次に以下の通りに入力します。
※ユーザ名やTNSネーム名などが不明な場合はOracleサーバ管理者にお問い合わせください。
[ユーザ名]@[OracleサーバTNSネーム名]
[パスワード]
SELECT VALUE
FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER = ‘NLS_CHARACTERSET’;
これは、Oracleサーバ上のNLS_DATABASE_PARAMETERSテーブルからNLS_CHARACTERSETの値を取得するSQL文です。
実行すると、Oracleサーバに設定されている文字コードを取得できます。
※以下のようにコマンドプロンプトに表示される
————————————————
文字コード(JA16SJISTILDEなど)
クライアントPCの文字コードをOracleに合わせる
環境変数設定で、「NLS_LANG」に先ほど確認したOracleサーバに設定されている文字コードを設定します。
例えば、JA16SJISTILDEの場合は、次のように設定します。
「スタートメニュー」⇒「コントロール パネル」⇒「システムとセキュリティ」⇒「システム」画面を開きます。
「システムの詳細設定」をクリックすると、「システムのプロパティ」画面が開きますので、「環境変数」をクリックします。
以下の通りに「NLS_LANG」に「JAPANESE_JAPAN.JA16SJISTILDE」を設定します。
これで設定はすべて完了です。
文字化け解消の動作確認
再起動することなく再度AccessでOracleリンクテーブルを開いてみると、日本語が正しく表示されました。
Oracleテーブルの日本語文字化けまとめ
今回は、AccessでOracleのリンクテーブルを開くと、なぜか日本語が文字化けしてしまう場合の対処法・解決策についてご紹介しました!
簡単にまとめると「Oracleサーバ側の文字コードを確認して、クライアントPCの環境変数「NLS_LANG」に確認した文字コードを設定する」ということです。
この記事がみなさまのお役に立てましたら幸いです!
Access使い方・便利技・トラブル対処まとめはこちら↓
2 件のコメント
WHWREの後ろが PALAMETER になってますが PARAMETER ですね
おかげさまで問題は解決しました(JA16SJISでした)
atlanさん、問題解決した旨のコメントありがとうございます。
また、誤字のご指摘まで頂きまして助かりました。すぐに修正いたしますね。