Getting to Know Oracle8i
Release 2 (8.1.6)

Part Number A76962-01





Go to previous page Go to next page

Deprecated and Desupported Features

This and prior releases of the Oracle database server have made several features or certain functionality no longer advisable for use. Some of this functionality has been, or will be, desupported.

This chapter contains the following sections:

Strings of Zero Length Are Not Equivalent To a NULL

A string of zero length ('') is not equivalent to a NULL.

According to the ANSI SQL 1992 Transitional standard, a zero-length or empty string is not the same as NULL. The Oracle database server may comply fully with this aspect of the standard in the future. Therefore, it is recommended that applications ensure that empty strings values and NULL are not treated equivalently.

The SELECT Privilege

The SELECT privilege may be required on tables that users update. Always grant the SELECT privilege to a user or role if you grant the UPDATE or DELETE privileges on the table.

In conformance with SQL92, Oracle releases starting with release 7.1, allow the security administrator to require that users have SELECT privilege on a table when executing an UPDATE or DELETE statement that references table column values in a WHERE or SET clause.

For more information, refer to the discussion of the SQL92_SECURITY initialization parameter in Oracle8i Reference.

Date Format Strings Are Stricter

In Oracle7, a space or punctuation character in the format string caused the corresponding character in the date string to be discarded. This caused incorrect dates to be entered into the database since alphanumeric characters were thrown out. Starting in Oracle8, an error occurs if an alphanumeric character is found in the date string when a punctuation character or space is found in the format string.


TO_CHAR(TO_DATE('0297','MM/YY'), 'MM/YY')

Oracle7 result: 02/07

Oracle8 result: ORA-1861

SERIALIZABLE=TRUE Is No Longer Supported

The initialization parameter SERIALIZABLE=TRUE is no longer supported in Oracle8 and beyond. The default behavior henceforth is as if SERIALIZABLE was set to FALSE. Use the SET TRANSACTION ISOLATION LEVEL SERIALIZABLE statement to achieve similar transaction isolation behavior.

Non-Deferred Linking

Application developers are cautioned that Oracle plans to desupport non-deferred mode linking beginning with the release of Oracle9 (it continues to be supported with all the releases of Oracle8). Recognizing these plans, application developers should no longer use non-deferred mode linking in developing new applications. Currently Oracle supports two linking modes:

  1. Non-deferred linking

    The Oracle6 OCI (client) only supported non-deferred linking which meant that for each SQL statement, a parse, a bind and a define call were each executed separately with individual round trips between the client and the server. This significantly increased network traffic between the client and the server and reduced both the performance and scalability of OCI applications.

  2. Deferred linking

    Starting with the Oracle7 OCI, both non-deferred linking and deferred linking are supported. Deferred mode linking essentially defers the bind and define steps until the statement executes, so it automatically bundles and defers the bind and define calls to execution time. Further, when the application is linked with deferred mode and a special parsing call is used (the OPARSE call with the DEFFLG set to a non-zero value), even the parse call can be deferred to execution time. Note that deferred mode linking does not depend on the specific OCI calls that the application uses, only on the link option that is selected.

Deferred mode linking therefore significantly reduces the number of round trips between the client and the server and as a result improves the performance and scalability of OCI applications. The default behavior of Oracle7 OCI connected to the Oracle7 database server is deferred mode linking. However, Oracle7 OCI also supports non-deferred linking by setting specific link time options.

Further, starting with Oracle8 OCI, there are two types of calls. First, all the Oracle7 OCI calls are supported with Oracle8 OCI; i.e., they work with an Oracle8 OCI client by relinking the Oracle8 OCI libraries. Second, there are additional Oracle8-specific OCI calls. The default mode with the first type of calls continues to be deferred mode linking; however, non-deferred mode linking is supported for these calls through all releases of Oracle8 by setting link time options. However, Oracle8-specific calls use a different paradigm and as a result non-deferred mode linking is not necessary.

The various combinations of client side libraries and server with which non-deferred linking is currently supported are summarized below:

Table 7-1 Non-deferred Linking: Server and Client-side Libraries 
Server    Client-side Libraries     

OCI release 6 

OCI release 7 

OCI release8 (release 7 calls) 

OCI release 8 (release 8 calls) 

OCI release 9 


Not supported 

Default: deferred Non-deferred supported 

Default: deferred Non-deferred supported 

Not supported 

Not supported 


Not supported 

Default: deferred Non-deferred supported 

Default: deferred Non-deferred supported 

Not supported 

Not supported 


Non-deferred mode only 

Default: deferred Non-deferred supported 

Default: deferred Non-deferred supported 

Not supported 

Not supported 


Non-deferred mode only 

Default: deferred Non-deferred supported 

Default: deferred Non-deferred supported 

Not supported 

Not supported 

Oracle continues to support deferred-mode linking with all the releases of Oracle8 (all 8.* releases). This has implications as discussed in the following.

Applications Using Oracle6 OCI Libraries

Since the Oracle6 OCI library is not supported against the Oracle8 database, applications using the Oracle6 library cannot be run against an Oracle8 database.

Applications Using Oracle7 OCI Libraries

Applications using Oracle7 OCI libraries can run in two configurations against an Oracle8 database:

  1. They can be run with Oracle7 OCI libraries against an Oracle8 database in non-deferred mode provided link time options are set appropriately.

  2. They can also be relinked with the Oracle8 OCI libraries and run in non-deferred mode provided link time options are set appropriately.

Oracle supports the first configuration through all the releases of Oracle8. However, the second configuration will not be supported in Oracle9. Therefore, applications that require non-deferred linking will not be able to upgrade to Oracle9 client-side libraries.

Applications Using Oracle8 OCI Libraries

Applications using Oracle8 specific OCI calls, such as those used to access Oracle8's object types, do not need to use non-deferred mode linking since the Oracle8 OCI uses a different paradigm. Applications using only Oracle7 OCI calls can use non-deferred mode linking, but only through Oracle Release 8.1 (Oracle8i).

Single-Task Linking

Single-task linking is a feature used by a limited number of Oracle's customers primarily on the OpenVMS platform. Application developers are cautioned that Oracle continues to support single-task linking with all the releases of Oracle8 (all 8.* releases) but will desupport it beginning with the first release after Oracle8i.

With single-task linking, Oracle supports two configurations to link Oracle products and user-written applications against the Oracle database:

  1. Single-task linking: In this case, applications are directly linked against the Oracle shareable image making single-task connection to Oracle.

  2. Two-task linking: In this case, applications linked in a standalone configuration can only connect to Oracle using SQL*Net's two task drivers such as SQL*Net DECnet or SQL*Net VMS Mailbox on the OpenVMS platform. This is the typical configuration used in the large majority of client-server applications. With two task linking, applications and tools connect with the Oracle7 database through a programmatic interface that creates a shadow process for each user process. This shadow process runs a copy of the Oracle shareable image on behalf of the user process using SQL*Net protocols to communicate between the user and shadow processes. Therefore, with this interface, user routines that invoke the Oracle7 database server functions run as one process or task, and the Oracle7 routines that execute these functions run as the second task.

Application developers who would like to use single-task linking to run their applications will not be able to do so against the first server release after Oracle8.


CONNECT INTERNAL is currently supported for backwards compatibility only. CONNECT INTERNAL will be completely desupported in Oracle8i, release 8.2. If you have not done so already, then you should plan to migrate your applications to use other connection syntax. See Oracle8i Administrator's Guide for more details.

Partition Views

In Oracle8i, partitioned tables are strongly recommended in preference to partition views. If you must use partition views, then see Oracle8i Concepts.

V6 Compatibility Behavior

With Oracle7, Oracle offered a Version 6 [V6] compatibility flag that allowed application developers developing Oracle7 applications to emulate Oracle6 behavior. With the release of Oracle8i (but starting in Oracle8, release 8.0), users are again cautioned that the Version 6 compatibility flag has been desupported in all of the Oracle8 products including PL/SQL8, all the Oracle Precompilers, the Oracle8 Oracle Call Interface, SQL*Module, and SQL*Plus. The desupport of the V6 compatibility flag is consistent with Oracle's policy of supporting backwards compatibility and behavior from one version release upgrade to another; i.e., from Oracle6 to Oracle7 but not for more than one version release upgrade.

Users who do not absolutely need to maintain V6 behavior are encouraged to upgrade their Oracle7 clients to Oracle8i. Users who absolutely need to continue to emulate V6 behavior for certain applications need to maintain one $ORACLE_HOME with an Oracle7 client for those applications. They can create a separate $ORACLE_HOME with an Oracle8i client for those applications for which they do not need V6 behavior.

Specifically, the V6 compatibility flag emulated the following aspects of OracleV6 behavior with Oracle7:

All of the above are desupported with the desupport of the V6 Compatibility Flag in all releases above Oracle8, release 8.0.

Use of "THE(subquery)" Expression

The current syntax for the table_expression_clause of a SELECT, INSERT, UPDATE, or DELETE statement includes a table_collection_expression. This expression is recognized by the TABLE( ) keyword (i.e., TABLE(collection_expression)), and it informs Oracle that the collection value expression should be treated as a table. Further, collection_expression may be a subquery that selects a nested table column from a table or view.

Prior to Oracle8, release 8.0, table_collection_expression was expressed as "THE (subquery)". That usage is now deprecated.

For more information, see Oracle8i SQL Reference.

Server Manager Desupport

The Server Manager will be desupported in a future release of Oracle. You should begin to migrate your Server Manager SQL scripts to SQL*Plus scripts as soon as possible.


The contents of this file have been deleted, but the file remains because its existence is required by Oracle. Do not delete this file. It will be obsoleted in a future release.

LONG Column Support

LONG column support will be discontinued in a future Oracle release. You are advised to migrate LONG data into LOB columns.

The Oracle Security Server and Crytographic Toolkit

The Oracle Security Server and Cryptographic Toolkit products do not exist in Oracle8i, but their functionality has been integrated into the standards based products: Oracle Advanced Security option and Oracle Internet Directory. Users must migrate their applications to use these Oracle8i components.

Dynamic Views Used for Monitoring Parallel Execution Performance

The following dynamic views, used for monitoring parallel execution performance, will be removed, renamed, or replaced in the next major Oracle release (Release 9.0).





Provides parallel execution statistics for each session 



Provides parallel execution statistics for the system 

Replaced by new view: V$PX_PROCESS_SYSSTAT 


This view tallies the current and total CPU time and number of messages sent and received per parallel server process 

Replaced by new view: V$PX_PROCESS 


Provides a detailed report of message traffic at the table queue level 

Renamed to V$PX_TQSTAT 

Go to previous page Go to next page
Copyright © 1996-2000, Oracle Corporation.

All Rights Reserved.