Wow, thanks to
Process Monitor http://technet.microsoft.com/en-us/sysinternals/bb896645
I was able track down why I couldn’t connect to Oracle from Excel.
I had wanted to try some of the examples Charles Hooper has posted on connecting to and monitoring Oracle, for example
I kept getting the error “Provider not found” Now what kind of trace info is there for an error like this in Excel? None AFAIK. Time to start guessing. I’m on windows 7 64 bit. I have the 64bit 11gR2 Oracle installed. Excel shows up in task manager as “EXCEL.EXE *32”. My first guess was, “oh, excel must want the 32bit libraries” so I got the 32 bit instant client from Oracle. Unzipped them into a directory and put them first into the path. Still no dice. Did a lot of google searches and turned up that I needed
oraoledb.dll
but this wasn’t in any of the instant client zips that I downloaded from
Turns out it’s in a download halfway down the page:
*Instant Client Package – ODAC: Includes ODP.NET, Oracle Services for MTS, Oracle Providers for ASP.NET, Oracle Provider for OLE DB, and OO4O with Oracle Instant Client
Downloaded this, put all the dlls in the first directory in my path. Still no dice.
I tried “strace”, but it gave no output. Rrrr.
Then I tried process monitor – bingo.
With process monitor, I filtered on processes containing “excel”, ran the connect, got tons of output, but knew it was a problem with libraries. I found “oraoledb10.dll” among the output. It was listed in an old Oracle 10 install directory. Oracle 10 32bit had been initially been installed. The install gave no warnings but bombed out late in the game so I remvoed the 10g and I installed Oracle 11gR2 64bit. (Oracle 11gR2 32bit won’t even begin the install) So now, I scoured the registry with regedit and found the old oraoledb10.dll here
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{3F63C36E-51A3-11D2-BB7D-00C04FA30080}\InprocServer32
I changed this to the new location of oraoledb11.dll and now it works.
Comments