開発時に発生するエラー

ORA-12705: 無効または不明なNLSパラメータ値が指定されました。

日本語メッセージも出ていない可能性があるので ORA-12705: Cannot access NLS data files or invalid environment specified というメッセージが出ていると思われる。

NLS_LANG のにおけるキャラクタセット Japanese_Japan.JA16SJISTILDE の太字に該当するキャラクタセットの関連ファイルを取得できなかったことをあらわす。

特に Windows 上で稼動する ORACLE の標準アプリケーションは レジストリに記録してある「環境変数を代替する情報」を自動的に読み込む。そのため環境変数の認知度が低いようである。 ORACLE に特化していないアプリケーションの場合にはレジストリを参照しないためにエラーとなることがある。 該当アプリのインストレーションに従いアプリケーションに対して環境変数や直接指定などによる明示的な通知を行なう。

原因

主な理由は単純に NLS_LANG の設定を誤っていることが多い。書式は '言語'_'テリトリ'.'キャラクタセット' で記述する。

対応

NLS_LANG を NLS_LANG 環境変数 を参考に正しい書式と内容であることを確認する。
参考: 日本語環境での characterset(NLS_表記) の種類

原因

NLS_LANG が正しい場合でも、関連ファイルの格納場所を示すための環境変数が古い場所を示している場合には 該当するキャラクタセットの情報が得られない。(※)
NLS 関連の格納先の指定は ORA_NLS_33 または ORA_NLS_10 Oracle 10g 環境変数で場所を指定する。 明示的に指定されない場合には ORACLE_HOME 環境変数から導出される。(デフォルトの位置 ORACLE_HOME/nls/data)

(※) たとえば JA16EUCTILDE など 〜TILDE であらわされるキャラクタセットは Oracle 9i R2 からのもので古いバージョンには存在しないために指定してもエラーになる。

対応

ORACLE_HOME と ORA_NLS_10(ORA_NLS33) の設定を確認する。Oracle 10g から ORA_NLS10 になっているので注意する。
参考: 環境変数 (NLS_LANG、ORACLE_HOME、etc)

 


関連事項

一覧ページへ戻る

OTN (Oracle Technology Network)によるエラーメッセージによる情報だけでは、対処に困ったエラーについてのプラクティスです。
ベスト・プラクティスというわけではないので、書いてあることに固執しないで広い視野でエラー対応してください。

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー