Tips

OCIGetTnsnamesPathコマンドとOracle 10g(Windows)

日付2006/02/10
ID41706 (英語原文参照)
バージョン2004.3
プラットフォームWin

4D for OCIプラグインのコマンド"OCIGetTnsnamesPath"は、レジストリキーHKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOMEの値を返すものです。10g以前のOracleでは、ここでOracle Homeの場所を取得することができました。

しかし、Oracle 10gの場合、Oracle Homeが保存されているのは次の場所です:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<install name>\ORACLE_HOME

例:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1\ORACLE_HOME

この結果、Oracle 10gでは4D for OCIプラグインのコマンド"OCIGetTnsnamesPath"を実行しても、Oracle Homeの正しい場所を取得することができません。

この問題の回避策として、コマンドが正しい値を返すようにWindowsレジストリの内容を変更することができます。

警告:Windowsのレジストリ編集に不安を感じるようであれば、この先へ進まないでください。

作業を始める前に、レジストリのバックアップ、あるいは少なくともOracleレジストリキーのエクスポートをしておいてください。

レジストリ変更の手順:

1. Microsoftレジストリエディタを起動します。
2. HKEY_LOCAL_MACHINE\SOFTWARE\ORACLEを表示します。
3. ORACLE_HOMEの値が存在しない場合、作成します。
4. ORACLE_HOMEの値を次のレジストリキーと同じものにします。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<install name>\ORACLE_HOME
5. Microsoftレジストリエディタを終了します。

変更の結果として、4D for OCIのコマンドOCIGetTnsnamesPathが正しい値を返すようになります。