A quick newbie question: can I compile and link my apps with OCCI 12.1 (oraocci12.dll) and have it run on top of OCI 11.2 (oci.dll) ?
I'm not using any advanced OCI features.
Not sure what you mean... oraocci12.dll depends on oci.dll, so you are implicitly using OCI when you use OCCI.
But I was told by Oracle (a few years back, about 11gR1 at the time) that you cannot mix OCCI with OCI, despite having accessors to the raw OCI handles from OCCI. OCCI sometimes lag in its support of feature that first come out first for OCI, like it used to for 64-bit LOB sizes, or XMLTYPE support, etc... Since those limitations of OCCI made us invest in the lower-level OCI, I haven't followed up on OCCI much.
Another drawback of OCCI versus OCI is that since OCCI is C++, you must always wait (sometimes for months) for Oracle to provide you with a version compiled with the latest Visual Studio, whereas OCI as a C library can be used with any VS versions.
But otherwise OCCI is great, much simpler that OCI. By all means use OCCI if it covers all the features (and VS versions) you want to use. --DD
My question was really just about the run-time compatibility of the two libraries. I'm not trying to use OCI handles that come out of the OCCI accessors directly with OCI.
We have numerous machines where we have deployed OCI 11.2 using Oracle's ODTwithODAC112030 package. The installation process prepends the directory where OCI.DLL is to the system PATH.
Our app is deployed separately. We run several versions of the app side-by-side. Current versions all use OCI 11.2. We would like to upgrade to Visual Studio 2012 which is supported only with OCCI 12.1.
If I deploy OCI 12.1 everywhere (with ODTwithODAC121010), then it will end up being used for all versions of our app (i.e. with OCCI 11.2 and 12.1). Preliminary tests indicate that this works, but I could not find any clear statement on whether this is a supported configuration or not.
Is there a compatibility OCCI-OCI compatibility matrix that I could look at?