株式会社ナレッジベースの杉山です。
仕事でOracle 12cの64bit版と32bit版を一台のWindows Serverにインストールしたのですが、色々ややこしいことになったので顛末をまとめておきたいと思います。
本来、Oracle Client 32bit版をインストールした後、64bit版をインストールするのが正解のようで、今回のようにややこしいことにならないようです。
あかん方向に進んでしまたので、真意の程はわかりません。
そもそもOracle Client 32bit版のインストールに失敗する。
Oracleのインストーラを実行し[サマリー]まで進み、製品のインストールを実行するとOUIのロック云々のメッセージが表示されてた瞬間にあっさりインストーラが終わってしまいます。
ここから悪夢が始まりです。
まず、インストール前にレジストリにキーを追加する必要があるそうです。
こちらのサイトを参考にしました。
ここでインベントリを格納するパスを間違えてしまうと言うミスを犯してしまいます。
すると中途半端に製品がインストールされてしまいます。
パスの指定の過ちにより、Oracle Clientのアンインストールが必要になったのですが、Oracle Universal Installerがインストールされてない状態です。
頼みの綱のdeinstallもインストールされていない状態です。
もちろん、64bit版のOracle Universal Installerには32bit版でインストールされた製品の情報はありません。
こんな場合は、Oracle Clientのインストール資材のsetup.exeを使用してアンインストールを実施します。
Oracle 12c以降では、setupで-deinstallオプションが追加されたそうです。ありがとうオラクル社の皆さん。
コマンドプロンプトで下記のように実行します。
[インストーラの格納パス]\setup.exe -deinstall -home [Oracle ClientのOracleホームのパス]
詳しくは「Oracle Databese Clientインストレーションガイド」の「Orcle Database Clientソフトウェアの削除」を参照してください。
これでアンインストールされました。
インストール時に作成されたフォルダが残る場合がありますので、不要であれば削除します。
再度インストールする場合、先ほどレジストリに追加したインベントリの情報が消えてしまっているので、もう一度追加してください。
さらにインストールパスを確認することを忘れずに。反省。
Oracle Client 32bit版のインストールをリトライしたら、今回はキッチリとインストールされました。
しかし、sqlplusを起動すると無情にもDLLが存在しない旨のメッセージが表示されて起動しません。
コンピューターにMSVCR100.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
どんどん深みにはまります。
めげずに調べてみるとOracle 12.1.0.2のインストーラに問題があるようです。
IBMさんのサイトを参考にしてインストール資材のファイルを修正します。
最初にこちらを参照しておけば良かった。
インストールしたOracle Clientを再びアンインストールし、レジストリを追加して、インストールします。
余談ですが、正しく製品がインストールされている場合、インストールフォルダ内のdeinstallを使用してアンインストールできますが、DLLがインストールされていない状態だったのでやめておきました。
これ以上、自爆したくありません。
はたして、めでたくsqlplusが起動しました。
ちなみにこの状態だと環境変数のpath上では、Oracle Client32bit版が64版のバスの前に記載されている状態です。
64bitの実行モジュールを優先する場合は環境変数の修正もお忘れなく。