You do not need to modify existing applications that do not use features available in the new Oracle Database 10g release. Existing applications running against a new Oracle Database function the same as they did in prior releases and achieve the same, or enhanced, performance.
Many new features and enhancements are available after upgrading to the new Oracle Database 10g release. Some of these features provide added functionality, while others provide improved performance. Before you upgrade your applications, you should review these new features to decide which ones you want to use.
See Also:Oracle Database New Features for information about the features available in the new Oracle Database 10g release
There may be compatibility issues between different releases of the Oracle Database that could affect your applications. These compatibility issues result from differences in the Oracle Database in various releases. Also, in each new release of the Oracle Database, new Oracle reserved words may be added, changes may be made to initialization parameters, and changes may be made to the data dictionary.
When you upgrade your Oracle Database to a new release, make sure that your applications do not use any Oracle reserved words, that your applications are compatible with the initialization parameters of the database, and that your applications are compatible with the data dictionary of the database. Finally, a new release of the Oracle Database software may require certain operating system releases or the application of certain patch sets.
Appendix A, "Initialization Parameter and Data Dictionary Changes" for information about initialization parameter changes and data dictionary changes
Oracle Database SQL Reference for a complete list of Oracle reserved words
Your operating system-specific Oracle documentation for information about operating system requirements
The upgrade path is very similar for precompiler and OCI applications. This section guides you through your upgrade options for these applications and notes differences between precompiler and OCI applications whenever necessary.
Create a test environment before you upgrade your production environment. Your test environment should include your upgraded application and the new Oracle Database. Also, your test environment should provide a realistic test of your application.
See Also:Pro*C/C++ Programmer's Guide, Pro*COBOL Programmer's Guide, and Oracle Call Interface Programmer's Guide for more information about using these programming environments.
To understand your options for upgrading precompiler and OCI applications, you first need to understand the type of software upgrade you are performing and your client/server configuration.
Two types of upgrades are possible for Oracle Database client and server software.
The upgrade changes the first digit of the release number.For example, upgrading from Oracle9i to Oracle Database 10g is a major database release upgrade.
The upgrade changes the second digit of the release number. For example, upgrading from release 9.0.1 to release 9.2 is a database maintenance release upgrade.
Note:Starting with release 9.2, maintenance releases of the Oracle Database are denoted by a change to the second digit of a release number. In previous releases, the third digit indicated a particular maintenance release.
Your precompiler and OCI applications run on the client in a client/server environment, where the Oracle Database server is the server. You may use one or more of the following client/server configurations in your environment.
The client software and the server software are on different computers, and they are connected through a network. The client and server environments are separate.
The client software and the server software are on the same computer, but they are installed in different Oracle home directories. Again, the client and server environments are separate.
The client software and server software are installed in the same Oracle home on the same computer. In this case, any upgrade of the server software is also an upgrade of the client software.
See Also:Oracle Database Concepts and Oracle Database Heterogeneous Connectivity Administrator's Guide for more information about client/server environments
This section covers compatibility rules that apply when you upgrade Oracle Database client or server software. The rules are based on the type of software upgrade you are performing and on your client/server configuration.
The following sections contain compatibility rules for the following type of upgrades:
Note:This section uses the terms introduced in "Understanding Software Upgrades and Your Client/Server Configuration".
The following rules apply when you upgrade the Oracle Database server software.
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 do not need to precompile, compile, or relink your applications. In these cases, the client software is separate from the server software and will continue to function against the server.
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 in "Upgrading the Oracle Database Client Software".
Note:It is possible to 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. In this case, the client software is not upgraded. However, such a configuration is not recommended.
When you run a precompiler or OCI application against a database server, Oracle recommends that the release of the database server software be equal to or higher than the client software release, but this configuration is not strictly required. For example, if your Oracle Database client software is release 8.1.7, then it is recommended that your Oracle Database server software be release 8.1.7 or higher to run a precompiler application on the client against the server.
Oracle recommends that you upgrade your client software to match the current server software. For example, if you upgrade your Oracle Database server to release 10.2, then Oracle recommends upgrading the client software to release 10.2 as well. Keeping the server and client software at the same release number ensures the maximum stability for your applications. In addition, the latest Oracle Database client software may provide added functionality and performance enhancements that were not available with previous releases.
The following rules apply when you upgrade the Oracle Database client software.
The code generated by precompiler applications can be linked with a release of the client library that is equal to or higher than the server release.
OCI applications can be linked with a version of the OCI runtime library that is equal to or higher than the version of the OCI library with which the application was developed.
For statically-linked applications, when you perform any type of upgrade of the client software, you need to relink only your precompiler and OCI applications.
You have the following options for upgrading your precompiler and OCI applications:
Option 1: Leave the application and its environment unchanged. Do not relink, precompile, or compile the application, and do not change the application code. The application will continue to work against Oracle Database 10g.
Option 2: Precompile and/or compile and then relink the application using the new Oracle Database 10g software. Application code needs to be changed if any APIs are deprecated or changed.
Option 3: Change the application code to use new Oracle Database 10g features. Then, precompile and/or compile and then relink the code.
These options are listed in order of increasing difficulty and increasing potential benefits. That is, Option 1 is the least difficult option, but it offers the least potential benefits, while Option 3 is the most difficult option, but it offers the most potential benefits. These options are discussed in the following sections.
This option requires that ORACLE_HOME environment of the application is not upgraded. You can leave the application unchanged, and it will continue to work with the new Oracle Database 10g server. The major advantage to this option is that it is simple and easy. In addition, this option requires the least amount of administration, because you do not need to upgrade any of your client computers. If you have a large number of client computers, then avoiding the administrative costs of upgrading all of them can become very important.
The major disadvantage to this option is that your application cannot use the features that are available in the new Oracle Database 10g release. In addition, your application cannot leverage some of the possible performance benefits of the Oracle Database 10g release.
When upgrading from a major release to Oracle Database 10g software, you have to precompile or compile the application with the new Oracle Database 10g software, after making necessary code changes to account for APIs that are deprecated or changed. Recompiling is not, however, required if you are upgrading to a minor release within Oracle Database 10g software.
This option requires that you install the new Oracle Database client software on each client computer. However, you only need to precompile or compile, and relink your application once, regardless of the number of clients you have. The advantages, however, can be quite large.
By recompiling, you perform a syntax check of your application code. Some problems in the application code that were not detected by previous releases of the Oracle software may emerge when you precompile or compile with the new Oracle software. Therefore, precompiling and compiling with the new software often helps you detect and correct problems in the application code that may have gone unnoticed before.
Also, recompiling affords maximum stability for your application, because you are sure that it works with the new Oracle software. Further, your environment is ready for new development using the latest tools and features available. In addition, you may benefit from performance improvements that are available with the new Oracle software only after you recompile and relink.
You can make code changes to your application to take advantage of new Oracle Database 10g features. This option is the most difficult, but it can provide the most potential benefits. You gain all of the advantages described in Option 2. In addition, you also benefit from changes to your application that may leverage performance and scalability benefits available with Oracle Database 10g. Further, you can add new features to your application that are available only with the new Oracle Database 10g release.
Become familiar with the new Oracle Database 10g features by reading Oracle Database New Features. Also, consult the Oracle documentation for your development environment so that you understand how to implement the features you want to use. For the precompilers, see Pro*C/C++ Programmer's Guide and Pro*COBOL Programmer's Guide. For OCI, see Oracle Call Interface Programmer's Guide.
When you have decided on the new features you want to use, change the code of your application to use these features. Follow the appropriate instructions in the following sections based on your development environment:
Complete the following steps to change your precompiler application to use Oracle Database 10g features:
If you want to take advantage of the new Oracle Database 10g features, then incorporate code for the new Oracle Database 10g functionality into the existing application.
Precompile the application using the Oracle precompiler.
Compile the application.
Relink the application with the Oracle Database 10g runtime library, SQLLIB, which is included with the precompiler.
To use new Oracle Database 10g functionality, change existing SQL scripts to use the new Oracle Database 10g syntax. Existing SQL scripts run unchanged on Oracle Database 10g, and require no modification, if they do not use new Oracle Database 10g functionality.
No changes to PL/SQL packages, procedures, or functions should be required. However, improved error checking may now identify errors at compile time rather than at run time.
Forms applications run the same on Oracle8i, Oracle9i, and Oracle Database 10g. However, review the new features described in Oracle Database New Features to determine whether any of the new Oracle Database 10g features would be beneficial to your applications or might otherwise affect them. Information about the ways in which the Oracle Database 10g features interact with forms and developer applications is provided in the Oracle Developer documentation set. Also, the Oracle Developer documentation for your operating system contains instructions for upgrading your forms or developer applications.
Note:New releases of Oracle Developer may introduce new reserved words that are specific to Oracle Developer. Code changes may be required if your application uses any of these new reserved words.