▶ Windows 11情報をお求めの方はこちらをクリック

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

2 min

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 PARAMETER = ‘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リンクテーブルを開いてみると、日本語が正しく表示されました。

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

 

Oracleテーブルの日本語文字化けまとめ

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

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

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

 

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

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

 

SEパパ

SEパパ

外資系IT企業SE職で2児の父ちゃん!職業柄かリサーチ&問題解決が好き。

幅広いジャンルで「お悩み解決」記事を執筆中。月間最高24万PV。雑誌掲載。

読者様に役立つ情報提供を心がけています。

カテゴリー:

2 件のコメント

  1. WHWREの後ろが PALAMETER になってますが PARAMETER ですね
    おかげさまで問題は解決しました(JA16SJISでした)

    • atlanさん、問題解決した旨のコメントありがとうございます。
      また、誤字のご指摘まで頂きまして助かりました。すぐに修正いたしますね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA