Oracle11 XEがインストールされたマシンへoo4oもインストールする

何かと便利なOracle Database Express Edition 11g Release 2(以下Oracle11XE)。そんなOracle11XEがインストール済のPCへoo4o(Oracle Object for OLE)もインストールしようとしてこのページ を参考にしてやったら、なんとOracle11XEが起動できなくなってしまった(泣。原因はレジストリの「コンピュータ\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_XE」の「ORACLE_HOME」が書き換えられていたから。これを元の値、Oracle11XEをデフォルトでインストールした場合は、「C:\oraclexe\app\oracle\product\11.2.0\server」へ戻せば起動できるようになる。ただし「NLS_LANG」も書き換わっているので、こちらも「JAPANESE_JAPAN.JA16SJISTILDE」あたりに戻したほうが無難でしょ。

で、肝心のoo4oはどうインストールすればいいのか。試行錯誤の末、以下の方法で成功。

ODAC1110621Xcopy.zipの入手

ここあたりからODAC1110621Xcopy.zipを入手して、適当なディレクトリへ解凍する。するとinstall.batというのが出てくるけど、これを使うと↑ように失敗する。これは同じマシンにOracle11XEを含め、Oracleサーバがインストールされていることを想定していない。

oo4oのインストール

ではどうすればいいか?まず解凍結果をまとめて、どこか適当なディレクトリ(C:\ODACとか)へコピー。oo4oを使うだけならいならないものもあるけど、選り分けるのも面倒なので丸ごとさくっとコピーw。そして以下のようにレジストリへ登録(<ODAC>はCOPY先のディレクトリ)

regsvr32 /s "<ODAC>\oo4o\bin\oradc.ocx"
regsvr32 /s "<ODAC>\oo4o\bin\OIP11.dll"
regsvr32 /s "<ODAC>\oo4o\bin\oo4ocodewiz.dll"
regsvr32 /s "<ODAC>\oo4o\bin\odbtreeview.ocx"
regsvr32 /s "<ODAC>\oo4o\bin\oo4oaddin.dll"

これで問題なければExcelとかで参照設定のダイアログを開くと「Oracle InProc Server 5.0 Type Library」が選択できるようになるので、それをチェックすればOK。だいたいこんな感じw