Compatibility rules apply when you upgrade Oracle Database client or server software.
Compatibility rules are based on the type of software upgrade you are performing, and the type of client/server configuration.
This section uses the terms introduced in “Software Upgrades and Client and Server Configurations.” .
Rules for Upgrading Oracle Database Server Software
Different rules apply when you upgrade Oracle Database server software depending on your database environment.
If You Do Not Change the Client Environment, Then You Are Not Required to Relink
Review these scenarios to determine if you must relink your applications after upgrading.
If your client and server are on different computers, or are in different Oracle home directories on the same computer, and you upgrade the Oracle Database server software without changing the client software, then you are not required to precompile, compile, or relink your applications.
In this set of scenarios, client software using Oracle Databases are in separate locations from the server software, and the client software continues to function without direct effects from the upgrade.
However, if your applications are using the same Oracle home as the Oracle Database server, then your server upgrade also upgrades your client software, and you must follow the rules for upgrading Oracle Database client software.
You can upgrade the Oracle Database server software, but not install the new precompiler or OCI client software, when you are using the same Oracle home for both binaries. In this case, the client software is not upgraded. However, Oracle does not recommend this configuration.
Applications Can Run Against Newer or Older Oracle Database Server Releases
If you run a precompiler or OCI application against a database server, then Oracle recommends that the release of the database server software is equal to or later than the client software release.
This recommendation configuration is not strictly required.
For example: If your client software is Oracle 12c release 2 (126.96.36.199), then if you run precompiler applications on the client against, the server, Oracle recommends that your server software is Oracle 12c release 2 (12.2) or later.
Upgrading the Oracle Database Client Software
Keeping the server and client software at the same release number ensures the maximum stability for your applications.
Use this information to plan your Oracle Database Client installations. Depending on how your applications are linked, different rules apply when you upgrade the Oracle Database client software.
Oracle recommends that you upgrade your client software to match the current server software. For example, if you upgrade your server to Oracle Database 18c, then Oracle recommends upgrading the client software to Oracle Database 18c as well. The latest Oracle Database client software may provide added features and performance enhancements that are only available with current Oracle Database client releases.
About Linking Applications with Newer Libraries
You can link the code generated by precompiler applications and OCI with a release of the client library that equals or is later than the server release.
You can link OCI applications with a release of the OCI runtime library that equals or is later than the release of the OCI library with which the application was developed.
Statically Linked Applications Must Always Be Relinked
Statically-linked code can be incompatible with error messages in the upgraded ORACLE_HOME.
You must relink statically-linked OCI applications for both major and minor releases. The statically-linked Oracle client-side library code may be incompatible with the error messages in the upgraded ORACLE_HOME. For example, if an error message is updated with additional parameters, then it becomes incompatible with the statically-linked code.
About Relinking Dynamically Linked Applications
Dynamically linked OCI applications from Oracle Database 10g Release 1 (10.1) and later releases are upward-compatible with the current release.
The Oracle client-side dynamic library is upward-compatible with the previous version of the library. Oracle Universal Installer creates a symbolic link for the previous version of the library that resolves to the current version. Therefore, an application that is dynamically linked with the previous version of the Oracle client-side dynamic library does not require relinking to operate with the current version of the Oracle client-side library.
If the application is linked with a run-time library search path (such as
-rpath on Linux), then the application may still run with the version of the Oracle client-side library with which it is linked. You must relink the application to run with the current version of the Oracle client-side library.
If the application is linked with the deferred option (for example, statically-linked application), then it must be relinked.
If the application is from a release earlier than Oracle Database 10g Release 1 (10.1), then it must be relinked.