If I can chime in, my 2 cents would be that if you could see your way clear to connecting in the 'thin' mode,
not the 'oci' mode, you would relieve yourself of some problems hinted at above, due to the brittle one-to-one
relationship needed between a given driver jar and the native libraries backing it up for the OCI. If you can
describe what you think you need OCI for, we may be able to show you how to get it also from the more
reliable, safer, easier all-Java path.
If you have an application which used to run with Java 6 and JDBC 4.0 and want to switch to Java 7 as the JRE you do not need to switch your ojdbc6.jar. It will keep working with Java 7 as well. You only need ojdbc7.jar if you plan to use newer JDBC 4.1 features.
The instant clients do have a version which is independent of the database product. And they are generally backward compatible, you can use the Instantclient 12.1 for 12.1 and 11.2 databases (and older but its not fully supported).
If you are using thick/oci driver mode (instead of THIN) then it is not enough to look for the ojdbcX.jar, but you also need matching native libraries. Matching in this case means they need to be from the same instant client distribution as the ojdbcX.jar, but it also means it must match the target operating system and the 32/64bit mode of the JRE used. If one of those conditions is false, you get the UnsatisfiedLink errors.