Oracle Data Access Components (ODAC) with 64-bit Development
Oracle has always been kinda touchy to install. For Windows users, the simple fact that it forced its way onto the root was an annoyance at worst. With the 10g and higher client tools, it’s even worse—Oracle doesn’t want to control just itself, but the location of ALL applications that call it.
If the file path of a calling application contains characters such as parenthesis, the application will fail. This behavior is by design and currently, according to Metalink, does not have a fix. Why is this setup this way? No one knows.
This really isn’t a rub until you install Oracle onto a 64-bit Windows machine. 64-bit Windows installs two Program Files directories, one for x64 native applications and one for x86 native/WoW applications. Unfortunately, the x86 directory is called… “Program Files (x86)”.
Now, for Oracle, this isn’t a big deal. It’s happy in its “c:\oracle” directory. I’m sure other Oracle apps install in a similar pathing structure to avoid the Program Files directory. So, you probably won’t see this issue on a production server. However, what about 64-bit development workstations? All of our programs are in the (x86)-esque directory. What does that mean? They fail. Even if using the 64-bit Oracle Development tools and clients… they still fail.
When it fails, you receive an error message that tells you exactly what’s wrong.
“ORA-06413: Connection not open.”
Ehh. Yeah, that’s very helpful.
According to Oracle? There’s nothing you can do right now, a full 64-bit implementation hasn’t been created. They acknowledge the issue, but don’t seem to care. The hot fixes made available a few months ago (metalink #5059238 and #4751549) only addresses 32-bit issues (and, according to forum posts, not entirely). In addition, there are workarounds to emulate a 32-bit environment, but… that doesn’t get you past the parenthesis issue.
According to the community? Uninstall your applications and reinstall them into a different path. For example, with Visual Studio, you need to take it out of “C:\Program Files (x86)\Visual Studio 9.0\” and place it in another directory sans-parenthesis, like “C:\DevTools\Visual Studio 9.0\”.
According to trial and error? Give up on the platform-based 8i, 9i, and 10g tools. The 11g BETA Oracle Data Access Components (18.104.22.168.10) works. There isn’t a 32 or 64-bit code set for this download; however, looking it the GAC, the 22.214.171.124 version of Oracle.DataAccess is registered as an x86 (32-bit) library. If you need Client access, the 126.96.36.199.0 11g Release 1 Client for x64 also works.