Oracle8i
Release 3 (8.1.7.0.0)

------------------------------------------------------------------------------

Copyright (C) Oracle Corporation 1993, 1998, 1999, 2000

Editors: Richard Powell, Paul Lane, Bridget Burke, Venkat Subramanian

This software/documentation contains proprietary information of Oracle
Corporation. It is provided under a license agreement containing
restrictions on use and disclosure and is also protected by copyright law.
Reverse engineering of the software is prohibited.

If this software/documentation is delivered to a U.S. Government Agency of
the Department of Defense, then it is delivered with Restricted Rights and
the following legend is applicable:

RESTRICTED RIGHTS LEGEND:

Use, duplication, or disclosure by the Government is subject to
restrictions as set forth in subparagraph (c)(1)(ii) of DFARS 252.227-7013,
Rights in Technical Data and Computer Software (October 1988).

If this software/documentation is delivered to a U.S. Government Agency not
within the Department of Defense, then it is delivered with "Restricted
Rights," as defined in FAR 52.227-14, Rights in Data - General, including
Alternate III (June 1987).

Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

The information in this document is subject to change without notice. If
you find any problems in the documentation, please report them to us in
writing. Oracle Corporation does not warrant that this document is error
free.

Oracle is a registered trademark, and Net8, SQL*Plus, Oracle8i, Oracle
Enterprise Manager, DBA Studio, Oracle Parallel Server, and PL/SQL are
trademarks or registered trademarks of Oracle Corporation. Other names may
be trademarks of their respective owners

All trade names referenced are the service mark, trademark, or registered
trademark of the respective manufacturer.

------------------------------------------------------------------------------

Table of Contents
-----------------

0.0  INTRODUCTION
     0.1 PURPOSE OF THIS README
     0.2 COVER LETTER AND LICENSING
     0.3 ORACLE8i, RELEASE 3 (8.1.7) PRODUCT DOCUMENTATION
1.0  COMPATIBILITY
     1.1 SERVER MANAGER DESUPPORT
     1.2 CONNECT INTERNAL DESUPPORT
     1.3 DATE FORMAT STRINGS: NEW BEHAVIOR
     1.4 PARTITION VIEWS
     1.5 SQL.BSQ
     1.6 SHUTDOWN CHANGES
     1.7 NUMERICAL COMPUTATIONS AND ORACLE7/8 COMPATIBILITY
2.0  ROWIDs AND ORACLE7 COMPATIBILITY
3.0  DESUPPORT NOTIFICATION FOR V6 COMPATIBILITY BEHAVIOR
4.0  PL/SQL
     4.1 INTER-VERSION RPC AND DEFAULT ARGUMENTS
5.0  UTILITIES
     5.1 SQL*LOADER
     5.2 EXPORT/IMPORT
6.0  SQL EXECUTION
     6.1 PLAN STABILITY
     6.2 FUNCTION-BASED INDEXES
7.0  MIGRATION
8.0  ORACLE CALL INTERFACE (OCI)
     8.1 BUILDING OCI APPLICATIONS AND/OR EXTERNAL PROCEDURES
9.0  XA
10.0 TRANSPARENT APPLICATION FAILOVER
11.0 ADVANCED QUEUING11.1 PROPAGATION JOBS
12.0 INITIALIZATION PARAMETERS
     12.1 RECOVERY_PARALLELISM
     12.2 DEFAULT BUFFER CACHE SIZE
13.0 MEDIA MANAGEMENT SOFTWARE
     13.1 USING LEGATO STORAGE MANAGER (LSM) ON UNIX
     13.2 USING A MEDIA MANAGER ON WINDOWS-NT
14.0 ORACLE PARALLEL SERVER
     14.1 ENVIRONMENT CONSIDERATIONS FOR INTERPROCESS COMMUNICATIONS (IPC)
     14.2 ADDING AND REPLACING NOTES IN OPS
15.0 DATABASE SECURITY
     15.1 PASSWORD MANAGEMENT
     15.2 ORACLE SECURITY SERVER
16.0 LOBs
     16.1 LOB DEMOS
17.0 STRUCTURED QUERY LANGUAGE (SQL)
     17.1 USING EVENT 10408 TO AVOID COMPATIBILITY PROBLEMS WITH NEW
          FUNCTION NAMES AND KEYWORDS
18.0 NATIONAL LANGUAGE SUPPORT
     18.1 LOBS
     18.2 NLS DEMO DIRECTORY
     18.3 Y2000 Date FORMAT ISSUES
     18.4 UNICODE 3.0 SUPPORT
     18.5 DATABASE CHARACTER SET MIGRATION TOOL
     18.6 SIMPLIFIED AND TRADITIONAL CHINESE CONVERSIONS
     18.7 HONG KONG SUPPLEMENTARY CHARACTER SET
     18.8 NEW EBCDIC CHARACTER SETS
     18.9 IMPROVED ALTER DATABASE CHARACTER SET SUPPORT
     18.10 AL24UTFFSS CHARACTER SET DESUPPORT
     18.11 NCHAR SUPPORT
     18.12 RESTRICTED ALTER DATABASE CHARACTER SET COMMAND SUPPORT (CLOB
           and NCLOB)
19.0 REPLICATION
     19.1 PROCEDURES
     19.2 SSL CONNECTIONS
     19.3 ORACLE 8i REL. 3 (8.1.7) DOCUMENTATION ERRATA
20.0 64-BIT ISSUES
21.0 TYPES
22.0 DATA DICTIONARY
     22.1 DATA DICTIONARY FUTURE VIEW CHANGES
23.0 MATERIALIZED VIEWS23.1 USING EVENT 30441 TO AVOID ERRORS
     23.2 FAST REFRESH OF MATERIALIZED VIEWS
     23.3 QUERY REWRITE
     23.4 NLS PARAMETERS
24.0 ORACLE TRACE COLLECTION SERVICES
     25.1 interMEDIA TEXT README, Release 8.1.7
     25.2 interMedia DATABASE OBJECT INSTALLATION
25.0 interMEDIA, SPATIAL SERIES, VISUAL INFORMATION RETRIEVAL
26.0 GENERIC ODBC CONNECTIVITY
27.0 TIME SERIES
28.0 JAVA
29.0 CONFIGURATION ASSISTANTS
     29.1 DATABASE CONFIGURATION ASSISTANT
     29.2 ORACLE DATA MIGRATION ASSISTANT
30.0 XML PARSER
31.0 8.1.7 FIXED BUGS
32.0 8.1.7 OPEN BUGS
     32.1 MISCELLANEOUS BUGS
     32.2 KNOWN ODMA BUGS

------------------------------------------------------------------------------


0.0 INTRODUCTION
================

0.1 PURPOSE OF THIS README
--------------------------

This README file is relevant only to the delivered Oracle8i, Release 3
(8.1.7) and its integral parts, such as SQL, PL/SQL, the Oracle Call
Interface (OCI), SQL*Loader, Import/Export utilities, and so on. There may
also be separate README files for Net8 and precompilers.

For information on upgrading, downgrading, and migration, see Oracle8i
Migration.

This README documents any differences between the server (and its integral
parts) and its documented functionality, as well as known problems and
workarounds.

Operating system releases, such as UNIX, Windows NT, DEC Open VMS, and so
on, often provide an operating system specific README document. Additional
README files may also exist for specific Oracle products such as SQL*Forms.
This README file is provided in lieu of release notes, system bulletins, or
similar publications.

0.2 COVER LETTER AND LICENSING
------------------------------

Please read the cover letter included with your Oracle8i Release 3 (8.1.7)
package.

0.3 ORACLE8i, RELEASE 3 (8.1.7) PRODUCT DOCUMENTATION
-----------------------------------------------------

The following list of books and part numbers describes the server
documentation set. Some books are available only online.

ADDENDUM

A85455 - Oracle8i Documentation Addendum

chapters: interMedia, NLS, Oracle Parallel Server, Migration, Net8, PL/SQL
Packages, Recovery Manager, Server Reference, Replication, Oracle Label
Security Error Messages, Standby Database, Oracle Trace


MASTER INDEX & MASTER GLOSSARY

A85457 - Oracle8i Generic Documentation Master Index
Q73066 - Oracle8i Master Glossary [HTML only]


SERVER & SQL*PLUS

A76962 - Getting to Know Oracle8i
A76956 - Oracle8i Administrator's Guide
A76965 - Oracle8i Concepts
A76992 - Oracle8i Designing and Tuning for Performance
A76999 - Oracle8i Error Messages
A86632 - Oracle8i Migration
A76966 - Oracle8i National Language Support Guide
A76961 - Oracle8i Reference
A85397 - Oracle8i SQL Reference
A85456 - Oracle8i Supplied Java Packages Reference
A76936 - Oracle8i Supplied PL/SQL Packages Reference
A76955 - Oracle8i Utilities
A77218 - Legato Storage Manager Administrator's Guide
A76993 - Oracle8i Backup and Recovery Guide
A76990 - Oracle8i Recovery Manager User's Guide and Reference
A76995 - Oracle8i Standby Database Concepts and Administration
A76994 - Oracle8i Data Warehousing Guide
A76960 - Oracle8i Distributed Database Systems
A76959 - Oracle8i Replication
A76958 - Oracle8i Replication Management API Reference
A82950 - SQL*Plus User's Guide and Reference
A82951 - SQL*Plus Quick Reference
A85448 - SQL*Plus Accessibility Guide for Windows


DIRECTORY, NETWORKING, AND SECURITY

A76933 - Net8 Administrator's Guide
A85430 - Oracle Advanced Security Administrator's Guide
A86101 - Oracle Internet Directory Administrator's Guide
A86082 - Oracle Internet Directory Application Developer's Guide


PARALLEL SERVER

A76972 - Oracle8i Parallel Server Documentation Online Roadmap [HTML only]
A76970 - Oracle8i Parallel Server Administration, Deployment, and
         Performance
A76934 - Oracle8i Parallel Server Setup and Configuration Guide
A76968 - Oracle8i Parallel Server Concepts


APPLICATION DEVELOPMENT

A76939 - Oracle8i Application Developer's Guide - Fundamentals
A76938 - Oracle8i Application Developer's Guide - Advanced Queuing
A76976 - Oracle8i Application Developer's Guide - Object-Relational
         Features
A76940 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
A77004 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
         using PL/SQL [PDF only]
A77003 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
         using OCI [PDF only]
A77001 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
         using Pro*C [PDF only]
A77000 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
         using Pro*COBOL [PDF only]
A77005 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
         using VB (OO4O) [PDF only]
A77002 - Oracle8i Application Developer's Guide - Large Objects (LOBs)
         using Java [PDF only]
A86030 - Oracle8i Application Developer's Guide - XML
A83730 - Oracle8i XML Reference
A76937 - Oracle8i Data Cartridge Developer's Guide
A85456 - Oracle8i Supplied Java Packages Reference
A76936 - Oracle8i Supplied PL/SQL Packages Reference
A76975 - Oracle Call Interface Programmer's Guide
A77069 - PL/SQL User's Guide and Reference
A76942 - Pro*C/C++ Precompiler Programmer's Guide
A76951 - Pro*COBOL Precompiler Programmer's Guide
A42525 - Programmer's Guide to the Oracle Precompilers
A42523 - Pro*Fortran Supplement to the Oracle Precompilers Guide
A58231 - SQL*Module for Ada Programmer's Guide


interMEDIA

A77061 - Oracle8i interMedia Text Migration
A77063 - Oracle8i interMedia Text Reference
A85336 - Oracle8i interMedia Audio, Image, and Video User's Guide and
         Reference
A85374 - Oracle8i interMedia Audio, Image, and Video Java Client User's
         Guide and Reference
A85334 - Oracle8i interMedia Locator User's Guide and Reference
A85337 - Oracle Spatial User's Guide and Reference
A67294 - Oracle8i Time Series User's Guide
A85335 - Oracle8i Visual Information Retrieval User's Guide and Reference
A85333 - Oracle8i Visual Information Retrieval Java Client User's Guide and
         Reference


JAVA

A83725 - Oracle8i Enterprise JavaBeans Developer's Guide and Reference
A83722 - Oracle8i CORBA Developer's Guide and Reference
A83728 - Oracle8i Java Developer's Guide
A81358 - Oracle8i Java Stored Procedures Developer's Guide
A83724 - Oracle8i JDBC Developer's Guide and Reference
A81357 - Oracle8i JPublisher User's Guide
A83723 - Oracle8i SQLJ Developer's Guide and Reference
A83727 - Oracle8i Java Tools Reference
A83726 - Oracle JavaServer Pages Developer's Guide and Reference
A83720 - Oracle8i Oracle Servlet Engine User's Guide


WEBDB [Release 2.2]

A77054 - Oracle WebDB Release Notes
A77053 - Oracle WebDB Installation Guide [PDF only]
A77075 - Oracle WebDB Tutorial [PDF only]
A77057 - Oracle WebDB Creating and Managing Components - Task Help [PDF
         only]
A77055 - Oracle WebDB Creating and Managing Components - Field-Level Help
         [PDF only]
A77056 - Oracle WebDB Creating and Managing Sites - Task Help [PDF only]
A77058 - Oracle WebDB Creating and Managing Sites - Field-Level Help [PDF
         only]


Oracle Enterprise Manager

A85248 - Oracle Enterprise Manager Administrator's Guide
A85250 - Oracle Enterprise Manager Concepts Guide
A85247 - Oracle Enterprise Manager Configuration Guide
A85245 - Oracle Enterprise Manager Messages Manual
A85251 - Oracle Intelligent Agent User's Guide
A85249 - Oracle SNMP Support Reference Guide


Oracle Integration Server

A83729 - Oracle Integration Server Overview
A75325 - Oracle Applications Interconnect User's Guide [Release 3.1.3]
A65435 - Oracle Message Broker Administration Guide [Release 2.0.1]
A85436 - Oracle Message Broker Release Notes [Release 2.0.1]
A85440 - Oracle Workflow Guide [Release 2.5.2]
A85441 - Oracle Workflow Installation Supplement [Release 2.5.2]
A85248 - Oracle Enterprise Manager Administrator's Guide
A76938 - Oracle8i Application Developer's Guide - Advanced Queuing
A83722 - Oracle8i CORBA Developer's Guide and Reference
A85456 - Oracle8i Supplied Java Packages Reference
A76936 - Oracle8i Supplied PL/SQL Packages Reference
A76960 - Oracle8i Distributed Database Systems
A76959 - Oracle8i Replication



1.0 COMPATIBILITY
=================

This section contains recommendations on upgrading to this release, and on
preparing for future changes (for example, to comply with future SQL ANSI
standards). If you follow these recommendations, upgrading to newer
releases of Oracle will be simplified.

1.1 SERVER MANAGER DESUPPORT
----------------------------

Oracle Corporation intends to replace Server Manager with SQL*Plus in a
future release. The 8.1 version of SQL*Plus has been enhanced to be
functionally equivalent to Server Manager. Please see Oracle8i Migration
for more information.

1.2 CONNECT INTERNAL DESUPPORT
------------------------------

CONNECT INTERNAL is currently supported for backward compatibility only.
Oracle Corporation intends to desupport it in a future release of Oracle.
If you have not done so already, you should plan to migrate your
applications to use other connection syntax. See the Oracle8i
Administrator's Guide for further details.

1.3 DATE FORMAT STRINGS: NEW BEHAVIOR
-------------------------------------

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. In Oracle8i, 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, with one exception.

Example:

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

    Oracle7 result: 02/97

    Oracle8 result: ORA-1861

Exception:

    TO_CHAR(TO_DATE('1996-05-19 12:37:48.196000', 'YYYY-MM-DD HH24:MI:SS."00000"')

    Oracle8 result: 1996-05-19 12:37:48

This exception will be removed in future releases.

Also, Oracle8 will allow matching of certain dates which produced an error
in Oracle7. This matching will only occur when it can be unambiguously
determined what the correct date is. However, this matching will not occur
if the format model modifiers FX or FXFM are used.

The new matching rules are:

   * Time fields at the end of a date string are optional.

   * Punctuation may be omitted in the date string under certain
     conditions.

   * For a few date format elements, an alternative similar date format
     element is tried if the initial match fails.

Example:

    TO_CHAR(TO_DATE('May 25, 1905', 'MM/DD/RRRR HH:MI:SS'), 'MM/DD/RRRR')

    Oracle8 result: 05/25/1905

Please read the subsection "String-to-Date Conversion Rules" in the section
"Format Models" of Chapter 2 in the Oracle8i SQL Reference for complete
details.

1.4 PARTITION VIEWS
-------------------

Oracle Corporation recommends that you use partitioned tables (available
beginning in Oracle8) rather than partition views. In general, partition
views should not be used and are supported for compatibility only. Oracle
Corporation intends to desupport them in a future release.

1.4.1 Guidelines for Creating and Maintaining Partitioned Views
---------------------------------------------------------------

To use partition views, the PARTITION_VIEW_ENABLED parameter must be set to
TRUE. DDL commands must be issued separately for each underlying table. For
example, to add an index to a partition view, you must add indexes to all
underlying tables. To analyze a partition view, you must analyze all
underlying tables. However, you can submit operations on each partition in
parallel.

Administrative operations must be performed as operations on the underlying
tables of the partition view, not on the partition view itself.

For example, a split operation consists of either one or two CREATE TABLE
AS SELECT operations (one if the split is 'in place'), followed by a
redefining of the partition view's view text.

Every partition has its own index, so any index lookup must be done in all
indexes for partitions that are not skipped.

A partition view cannot be the target of a DML statement.

Partition views do not support concatenated partitioning keys.

SQL*Loader does not support partition views.

1.5 SQL.BSQ
-----------

Oracle recommends not changing sql.bsq before installation because some
modifications may jeopardize customer supportability.

1.6 SHUTDOWN CHANGES
--------------------

Starting in Oracle 8.0.4, the shutdown mechanism has changed. Clients that
are connected to ORACLE during a SHUTDOWN ABORT/IMMEDIATE/TRANSACTIONAL now
receive one of the following errors on any subsequent SQL operations:

    ORA-03113: end-of-file on communication channel
    ORA-12571: TNS:packet writer failure

instead of:

    ORA-01092: ORACLE instance terminated. Disconnection forced

1.7 NUMERICAL COMPUTATIONS AND ORACLE7/8 COMPATIBILITY
------------------------------------------------------

Oracle8 releases starting with 8.0.4 perform numerical computations with
better accuracy than Oracle7 and Oracle version 8.0.3. Multiplication and
division have their internal results rounded, not truncated as was the case
in the past, to the maximum precision supported by the NUMBER type.
Conversions of NUMBER to the native C FLOAT and DOUBLE datatypes are
rounded to the precision of those types on the platform on which Oracle is
executing. The result of these improvements is that some numerical
computations will now produce more accurate through slightly different
results than they did under all releases of Oracle7 and version 8.0.3 (the
first Oracle8 release).


2.0 ROWIDs AND ORACLE7 COMPATIBILITY
====================================

The encoding scheme for Oracle8 rowids has been expanded. See Oracle8i
Migration and Oracle8i SQL Reference for more information.


3.0 DESUPPORT NOTIFICATION FOR 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 Oracle 8.0.3, users were cautioned
that the Version 6 compatibility flag was being desupported effective
immediately in all of the Oracle8 products, including release 8 of PL/SQL,
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 backward compatibility and behavior from one
version release upgrade to another, for example, 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 Oracle8. If you absolutely must continue
to emulate V6 behavior for specific applications, you must maintain one
ORACLE_HOME with an Oracle7 client for those applications. You can create a
separate $ORACLE_HOME with an Oracle8 client for those applications for
which you do not need V6 behavior.

Specifically, the V6 Compatibility flag emulated the following aspects of
Oracle6 behavior with Oracle7:

   * String literals are fixed length in Oracle7 but are treated as
     variable length with the V6 flag.

   * PL/SQL Local char variables are fixed length in Oracle7 but are
     treated as variable length with the V6 flag.

   * The return value of SQL functions (for example, USER) are fixed-length
     characters in Oracle7 but are treated as variable-length characters
     with the V6 flag.

   * Select/Fetch of a NULL with no indicator raises an ORA-1405 error with
     Oracle7 but returns no error with the V6 flag.

   * SQL group functions are called at FETCH time with Oracle7 but are
     called at query execution time with the V6 flag.

   * Describe of a fixed-length string returns Type=96 with Oracle7 but
     returns Type=1 with the V6 flag.

All of these behaviors were desupported with the desupport of the V6
Compatibility Flag with Oracle8.


4.0 PL/SQL
==========

4.1 INTER-VERSION RPC AND DEFAULT ARGUMENTS
-------------------------------------------

Calls from one server to functions and procedures on a second server
running a different version of Oracle may have problems when using
defaulted argument values. Customer-visible symptoms may vary depending
upon the source code involved. PLS-801[1411] and PLS-801[1407] are quite
likely, but other symptoms, including silently wrong results, are possible.
The suggested workaround is to provide an explicit value for each argument
on any call through a database link if it is possible that the sending and
receiving systems are running different versions of Oracle.


5.0 UTILITIES
=============

5.1 SQL*LOADER
--------------

5.1.1 BUFFERS Keyword
---------------------

The BUFFERS keyword is no longer supported for input file processing.

5.1.2 Specifying Command-Line File-Processing Options
-----------------------------------------------------

If you specify a data file on the command line and also specify data files
in the control file with INFILE, the data specified on the command line
will be processed first, and the first data file specified in the control
file will be ignored. All other files specified in the control file will be
processed.

5.1.3 Connecting to a Database As User SYS
------------------------------------------

Starting in version 8.1.7, if you attempt to connect to a database as user
SYS, you also need to specify AS SYSDBA in the connect string. For example:

     sqlldr \'SYS/password AS SYSDBA\' foo.ctl

This example shows the entire connect string enclosed in single quotation
marks and backslashes. This is because the string, AS SYSDBA, contains a
blank, a situation for which most operating systems require that the entire
connect string be placed in quotation marks or marked as a literal by some
method. Some operating systems also require that quotation marks on the
command line be preceded by an escape character. In this example,
backslashes are used as the escape character. If the backslashes were not
present, the command-line parser that SQL*Loader uses would not understand
the quotation marks and would remove them before calling SQL*Loader.

See your operating system-specific Oracle documentation for more
information about special and reserved characters on your system.

5.1.4 New SIGNED and UNSIGNED Keywords for INTEGER and SMALLINT
---------------------------------------------------------------

The information given on page 5-59 in the Oracle8i Utilities manual for
version 8.1.6 regarding the INTEGER and SMALLINT datatypes incorrectly
identifies them as unsigned. By default, the INTEGER and SMALLINT control
file datatypes are treated as signed quantities. Two new keywords, SIGNED
and UNSIGNED, allow you to treat INTEGER and SMALLINT as either signed or
unsigned quantities.

The UNSIGNED keyword, as shown in the following example, results in the
INTEGER and SMALLINT control file datatypes being treated as unsigned
quantities.

  (column1 position(1) INTEGER UNSIGNED,
   column2 INTEGER UNSIGNED,
   column3 SMALLINT UNSIGNED,
   ...
   )

Use of the SIGNED Keyword results in the default behavior.

5.1.5 Change in Behavior of SQL*Loader Input Routines
-----------------------------------------------------

Previous versions of SQL*Loader contained a bug that could cause it to
incorrectly identify record boundaries. As a result, incorrect results
might be produced when loading a stream-record-format datafile that uses a
character set that is not byte-unique.

A character set is byte-unique if every byte encoding is unique. Single
byte character sets are always byte-unique. Varying width multibyte
character sets are not byte-unique if any single byte character encoding
ever appears in any byte position in any multibyte character. Examples of
multibyte character sets that are not byte-unique are utf8 and ja16sjis.

For version 8.1.7, a change has been made to SQL*Loader behavior that fixes
this problem. A side effect of this fix is that SQL*Loader may run slower
for non-byte-unique character sets. In the common case where the record
terminator is a single byte 0x0a ("\n" in ASCII), SQL*Loader will not run
slower.

5.1.6 New PRESERVE Keyword with CONTINUEIF
------------------------------------------

This topic attempts to clarify material presented in the Utilities manual
for version 8.1.6 (beginning on page 5-36) regarding how logical records
are assembled from physical records. This topic also describes the new
PRESERVE keyword for use with CONTINUEIF THIS and CONTINUEIF NEXT.

If the PRESERVE keyword is not used, the continuation field is removed from
all physical records when the logical record is assembled. That is, data
values are allowed to span the records with no extra characters
(continuation characters) in the middle.

If the PRESERVE keyword is used, the continuation field is kept in all
physical records when the logical record is assembled.

The following examples show the use of CONTINUEIF THIS and CONTINUEIF NEXT,
with and without the PRESERVE keyword.

Example 1-1 CONTINUEIF THIS without the PRESERVE Keyword

Assume that you have physical records 14 characters long and that a period
represents a space:

    %%aaaaaaaa....
    %%bbbbbbbb....
    ..cccccccc....
    %%dddddddddd..
    %%eeeeeeeeee..
    ..ffffffffff..

In this example, the CONTINUEIF THIS clause does not use the PRESERVE
keyword:

    CONTINUEIF THIS (1:2) = '%%'

Therefore, the logical records are assembled as follows:

    aaaaaaaa....bbbbbbbb....cccccccc....
    dddddddddd..eeeeeeeeee..ffffffffff..

Note that columns 1 and 2 (for example, %% in physical record 1) are
removed from the physical records when the logical records are assembled.

Example 1-2 CONTINUEIF THIS with the PRESERVE Keyword

Assume that you have the same physical records as in Example 1-1.

In this example, the CONTINUEIF THIS clause uses the PRESERVE keyword:

    CONTINUEIF THIS PRESERVE (1:2) = '%%'

Therefore, the logical records are assembled as follows:

    %%aaaaaaaa....%%bbbbbbbb......cccccccc....
    %%dddddddddd..%%eeeeeeeeee....ffffffffff..

Note that columns 1 and 2 are not removed from the physical records when
the logical records are assembled.

Example 1-3 CONTINUEIF NEXT without the PRESERVE Keyword

Assume that you have physical records 14 characters long and that a period
represents a space:

    ..aaaaaaaa....
    %%bbbbbbbb....
    %%cccccccc....
    ..dddddddddd..
    %%eeeeeeeeee..
    %%ffffffffff..

In this example, the CONTINUEIF NEXT clause does not use the PRESERVE
keyword:

    CONTINUEIF NEXT (1:2) = '%%'

Therefore, the logical records are assembled as follows (the same results
as for Example 1-1).

    aaaaaaaa....bbbbbbbb....cccccccc....
    dddddddddd..eeeeeeeeee..ffffffffff..

Example 1-4 CONTINUEIF NEXT with the PRESERVE Keyword

Assume that you have the same physical records as in Example 1-3.

In this example, the CONTINUEIF NEXT clause uses the PRESERVE keyword:

    CONTINUEIF NEXT PRESERVE (1:2) = '%%'

Therefore, the logical records are assembled as follows:

    ..aaaaaaaa....%%bbbbbbbb....%%cccccccc....
    ..dddddddddd..%%eeeeeeeeee..%%ffffffffff..

5.1.7 SQL*Loader Documentation Errata
-------------------------------------

This section contains additions, deletions, and corrections to the
SQL*Loader chapters as they appeared in the Utilities manual for Oracle8i
version 8.1.6.

5.1.7.1 Format of BAD and DISCARD Files
---------------------------------------

The Utilities manual for version 8.1.6 incorrectly states, in several
places, that the BAD file and DISCARD file have the same format as the
input datafile.

SQL*Loader does not always write records to the BAD or DISCARD files using
the same record format of the input files. Exactly what gets written is
specific to the system where SQL*Loader is running. For example, for the
different record formats supported on Sun Solaris, SQL*Loader behaves as
follows:

   * If the input record uses a stream record format, then the records
     written to the BAD and DISCARD files are terminated with newlines.
     This is true even if a different terminator was specified for the
     input record.

   * If the input record uses a fixed length format, then the records
     written to the BAD and DISCARD files contain the correct fixed length
     data.

   * If the input record uses a variable format, then the records written
     to the BAD and DISCARD files are written as if they were stream
     records. The leading count data is not included in the record, nor are
     record terminators.

5.1.7.2 Default Filename for the Bad File
-----------------------------------------

The Utilities manual for version 8.1.6 contains the following incorrect
statement on page 6-3 regarding the BAD keyword used to generate a bad
file:

"If a filename is not specified, the name of the control file is used by
default with the .BAD extension."

The correct information is that the name of the datafile (not the control
file) is used by default, with an extension of .BAD.

5.1.7.3 Loading Date Fields That Contain Only Whitespace
--------------------------------------------------------

The text on page 5-66 regarding the DATE field and on page 5-82 regarding
loading all-blank fields contains outdated information. As of version
8.1.7, DATE fields that contain only whitespace are loaded as NULL fields
and, therefore, no longer cause an error.

5.1.7.4 Behavior When Both Position and Delimiters Are Specified for a
        Field
----------------------------------------------------------------------

The Oracle8i Utilities manual for version 8.1.6 contains the following
incorrect paragraph on page 5-84.

"If a predetermined size is specified for a delimited field, and the
delimiter is not found within the boundaries indicated by the size
specification, then an error is generated. For example, if you specify:

    loc POSITION(19:31) CHAR TERMINATED BY ","

and no comma is found between positions 19 and 31 of the input record, then
the record is rejected. If a comma is found, then it delimits the field."

The correct information is that if POSITION and terminators or enclosure
strings are specified for the same field, only POSITION has any effect. The
terminator or enclosure strings are ignored.

5.1.7.5 Understanding the Use of WHEN, NULLIF, and DEFAULTIF Clauses
--------------------------------------------------------------------

This topic attempts to clarify how SQL*Loader uses the WHEN, NULLIF, and
DEFAULTIF clauses. This information supersedes information given in the
Oracle8i Utilities manual for version 8.1.6 in the sections "Setting a
Column to Null or Zero" on page 5-80 and "Choosing Which Records to Load"
on page 5-41.

The following information applies to scalar fields. For nonscalar fields
(column objects, LOBs, and collections), the WHEN, NULLIF, and DEFAULTIF
clauses are processed differently because nonscalar fields are more
complex. The results of a WHEN, NULLIF, or DEFAULTIF clause can be
different depending on whether the clause specifies a field name or a
position.

If the WHEN, NULLIF, or DEFAULTIF clause specifies a field name, SQL*Loader
compares the clause to the evaluated value of the field. The evaluated
value takes trimmed whitespace into consideration. See the information
about trimming blanks and tabs in the Oracle8i Utilities manual for a
discussion of whitespace trimming.

If the WHEN, NULLIF, or DEFAULTIF clause specifies a position, SQL*Loader
compares the clause to the original logical record in the datafile. No
whitespace trimming is done on the logical record in that case.

Different results are more likely if the field has whitespace that is
trimmed or if the WHEN, NULLIF, or DEFAULTIF clause contains blanks or tabs
or uses the BLANKS keyword. If you require the same results for a field
specified by name and for the same field specified by position, use the
PRESERVE BLANKS keyword. The PRESERVE BLANKS keyword instructs SQL*Loader
not to trim whitespace when it evaluates the values of the fields.

The results of a WHEN, NULLIF, or DEFAULTIF clause are also affected by the
order in which SQL*Loader operates, as described in the following steps.
SQL*Loader performs these steps in order, but it does not always perform
all of them. Once a field is set, any remaining steps in the process are
ignored. For example, if the field is set in step 5,

  1. SQL*Loader does not move on to step 6.

  2. SQL*Loader evaluates the value of each field for the input record and
     trims any whitespace that should be trimmed (according to existing
     guidelines for trimming blanks and tabs).

          SQL*Loader evaluates any WHEN clauses for the table for the row.
  3. If the record satisfies the WHEN clauses for the table or there are no
     WHEN clauses specified, SQL*Loader checks each field for a NULLIF
     clause.

  4. If a NULLIF clause exists, SQL*Loader evaluates it.

  5. If the NULLIF clause is satisfied, SQL*Loader sets the field to null.

  6. If the NULLIF clause is not satisfied or if there is no NULLIF clause,
     SQL*Loader checks the length of the field from field evaluation. If
     the field has a length of 0 from field evaluation (for example, it was
     a null field, or whitespace trimming resulted in a null field),
     SQL*Loader sets the field to null. In this case, any DEFAULTIF clause
     specified for the field is not evaluated.

  7. If any specified NULLIF clause is false or there is no NULLIF clause,
     and if the field does not have a length of 0 from field evaluation,
     SQL*Loader checks the field for a DEFAULTIF clause.

  8. If a DEFAULTIF clause exists, SQL*Loader evaluates it.

  9. If the DEFAULTIF clause is satisfied, then the field is set to 0 if
     the field in the datafile is a numeric field. It is set to NULL if the
     field is not a numeric field. The following fields are numeric fields
     and will be set to 0 if they satisfy the DEFAULTIF clause:

        * BYTEINT

        * SMALLINT

        * INTEGER

        * FLOAT

        * DOUBLE

        * ZONED

        * (PACKED) DECIMAL

        * EXTERNAL NUMERICS (INTEGER, FLOAT, DECIMAL, and ZONED)

          If the DEFAULTIF clause is not satisfied or if there is no
          DEFAULTIF clause, SQL*Loader sets the field with the evaluated
          value from step 1.

The order in which SQL*Loader operates could cause results that you do not
expect. For example, the DEFAULTIF clause may look like it is setting a
numeric field to NULL rather than to 0.

The following examples clarify the results for different situations. In the
examples, a blank or space is indicated with a period (.). Assume that col1
and col2 are VARCHAR2(5) columns in the database.

Example 1-5 DEFAULTIF Clause Is Not Evaluated

The control file specifies:

    (col1 position (1:5),
     col2 position (6:8) char) integer external defaultif col1 = 'aname')

The datafile contains:

    aname...

Col1 for the row evaluates to 'aname'. Col2 evaluates to NULL with a length
of 0 (it is "..." but the trailing blanks are trimmed for a positional
field).

When SQL*Loader determines the final loaded value for col2, it finds no
WHEN clause and no NULLIF clause. It then checks the length of the field,
which is 0 from field evaluation. Therefore, SQL*Loader sets the final
value for col2 to NULL. The DEFAULTIF clause is not evaluated, and the row
is loaded as 'aname' for col1 and NULL for col2.

Example 1-6 DEFAULTIF Clause Is Evaluated

The control file specifies:

    .
    .
    .
    PRESERVE BLANKS
    .
    .
    .
    (col1 position (1:5),
     col2 position (6:8) integer external defaultif col1 = 'aname'

The datafile contains:

    aname...

Col1 for the row again evaluates to 'aname'. Col2 evaluates to '...'
because trailing blanks are not trimmed when PRESERVE BLANKS is specified.

When SQL*Loader determines the final loaded value for col2, it finds no
WHEN clause and no NULLIF clause. It then checks the length of the field
from field evaluation, which is 3, not 0.

Then SQL*Loader evaluates the DEFAULTIF clause, which evaluates to TRUE
because col1 is 'aname', which is the same as 'aname'.

Because col2 is a numeric field, SQL*Loader sets the final value for col2
to '0'. The row is loaded as 'aname' for col1 and as '0' for col2.

Example 1-7 DEFAULTIF Clause Specifies a Position

The control file specifies:

    (col1 position (1:5),
     col2 position (6:8) integer external defaultif (1:5) = BLANKS)

The datafile contains:

    .....123

Col1 for the row evaluates to NULL with a length of 0 (it is '.....', but
the trailing blanks are trimmed). Col2 evaluates to '123'.

When SQL*Loader sets the final loaded value for col2, it finds no WHEN
clause and no NULLIF clause. It then checks the length of the field from
field evaluation, which is 3, not 0.

Then SQL*Loader evaluates the DEFAULTIF clause. It compares (1:5) which is
'.....' to BLANKS, which evaluates to TRUE. Therefore, because col2 is a
numeric field (integer external is numeric), SQL*Loader sets the final
value for col2 to '0'. The row is loaded as NULL for col1 and '0' for col2.

Example 1-8 DEFAULTIF Clause Specifies a Field Name

The control file specifies:

    (col1 position (1:5),
     col2 position (6:8) integer external defaultif col1 = BLANKS)

The datafile contains:

    .....123

Col1 for the row evaluates to NULL with a length of 0 (it is '.....', but
the trailing blanks are trimmed). Col2 evaluates to '123'.

When SQL*Loader determines the final value for col2, it finds no WHEN
clause and no NULLIF clause. It then checks the length of the field from
field evaluation, which is 3, not 0.

Then SQL*Loader evaluates the DEFAULTIF clause. As part of the evaluation,
it checks to see that col1 is NULL from field evaluation. It is NULL, so
the DEFAULTIF clause evaluates to FALSE. Therefore, SQL*Loader sets the
final value for col2 to '123', its original value from field evaluation.
The row is loaded as NULL for col1 and '123' for col2.

5.2 EXPORT/IMPORT
-----------------

5.2.1 Triggers
--------------

A full Export no longer exports triggers owned by schema SYS. Users who
have defined SYS triggers must manually re-create them either before or
after the full Import to the target database. It is suggested that they be
re-created after the Import (just as user triggers are re-created last) in
case they define actions that would slow down or otherwise impede the
progress of Import.

This change was made to accommodate JAVAVM, which creates triggers in
schema SYS as part of the Java "definition" of the database. Such triggers
are expected to exist in the target Java database prior to Import, and
Imports for user SYSTEM do not in general have sufficient privileges to
re-create the triggers in the SYS schema.

5.2.2 Features Not Yet Supported
--------------------------------

The Export and Import utilities do not provide transportable tablespace
support for:

   * Tables with columns set UNUSED

   * Tables with columns added after the table contains LONG columns

5.2.3 Incremental, Cumulative, and Complete Features No Longer Supported
------------------------------------------------------------------------

Incremental, cumulative, and complete Exports are obsolete features. They
are no longer documented, nor is their use supported by Oracle Corporation.
For database backups, you should use the Oracle Backup and Recovery
Manager. See the Oracle8i Backup and Recovery Guide for more information.

5.2.4 Connecting to a Database As User SYS
------------------------------------------

Starting in version 8.1.7, if you attempt to connect to a database as user
SYS, you also need to specify AS SYSDBA in the connect string. For example:

    exp \'SYS/password AS SYSDBA\'

This example shows the entire connect string enclosed in single quotation
marks and backslashes. This is because the string, AS SYSDBA, contains a
blank, a situation for which most operating systems require that the entire
connect string be placed in quotation marks or marked as a literal by some
method. Some operating systems also require that quotation marks on the
command line be preceded by an escape character. In this example,
backslashes are used as the escape character. If the backslashes were not
present, the command-line parser that Export and Import use would not
understand the quotation marks and would remove them before calling Export
or Import.

See your operating system-specific Oracle documentation for more
information about special and reserved characters on your system.

5.2.5 Processing Restrictions
-----------------------------

The following restrictions apply when you process data with the Export and
Import utilities:

   * Java classes, resources, and procedures that are created using EJBs
     (Enterprise Java Beans) will not be placed in the dump file.

   * Constraints that have been altered using the RELY keyword will lose
     the RELY attribute when they are exported.

5.2.6 Export/Import Documentation Errata
----------------------------------------

This section contains additions, deletions, and corrections to the Export
and Import chapters as they appeared in the Oracle8i Utilities manual for
Oracle8i version 8.1.6.

5.2.6.1 Preserving Case Sensitivity for Table Names
---------------------------------------------------

Statements on pages 1-26 and 2-28 of the Oracle8i Utilities manual for
version 8.1.6 indicate that case sensitivity for table names can be
preserved by enclosing the name in quotation marks.

It should be further noted that some operating systems require that
quotation marks on the command line be preceded by an escape character. The
following are examples of how case sensitivity can be preserved in the
different Export and Import modes.

   * In command-line mode:

     tables='\"Emp\"'

   * In interactive mode:

     Table(T) to be exported: "Emp"

   * In parameter file mode:

     tables='"Emp"'


6.0 SQL EXECUTION
=================

6.1 PLAN STABILITY
------------------

6.1.1 Default System Tablespace
-------------------------------

The default system tablespace can become exhausted if the
CREATE_STORED_OUTLINES parameter is enabled and the running application has
an abundance of literal SQL statements. If this happens, use the
OUTLN_PKG.DROP_UNUSED procedure to remove those literal SQL outlines.

6.1.2 OR-Expansion
------------------

For execution plans that involve OR-expansion, you should avoid using
stored outlines if possible. This recommendation is due to the nature of
stored outlines, which use hints to influence the execution plan, and to
the nature of OR-expansion, which is represented internally through a set
of OR chains, each of which represents a distinct join order. Hints are
only useful for influencing a single join order, as there is no way to
target a specific OR chain. Therefore an outline's hints are applied to the
first OR chain represented internally. The net effect is that these hints
simply get propagated across the remaining OR chains by the optimizer,
often leading to suboptimal execution plans that differ from the originally
saved plans.

Workaround:

Stored outlines that involve OR-expansion can be identified by querying the
USER_OUTLINE_HINTS view for hint text containing USE_CONCAT. Issue the
following query:

    SELECT NAME, HINT FROM USER_OUTLINE_HINTS WHERE HINT LIKE 'USE_CONCAT%';

Any outline containing this hint should either be dropped using the DROP
OUTLINE command or moved to an unused category with the following command:

    ALTER OUTLINE <outline-name> CHANGE CATEGORY TO <unused-category-name>;

6.2 FUNCTION-BASED INDEXES
--------------------------

6.2.1 Turning Off Descending Indexes
------------------------------------

Before release 8.1, index columns were allowed to be marked DESC during
index creation, for example:

    CREATE INDEX (a1, a2 ASC, a3 DESC);

However, DESC was always ignored. As of Release 8.1 such index columns are
actually in descending order. As of version 8.1.6, you can revert to the
old behavior (ignoring DESC during CREATE INDEX) by issuing:

    ALTER SYSTEM SET  "_ignore_desc_in_index" = true;

or by setting _ignore_desc_in_index to TRUE in the initialization parameter
file. For any existing indexes whose columns are already descending (query
the DESCEND column of DBA_IND_COLUMNS to check), you must drop and
re-create such columns if you do not want them to be descending.

On some platforms, the parameter "_ignore_desc_in_index" is not in the
initial version of 8.1.6, and an event (10612) is there instead. Setting
the event to a nonzero level turns off DESC. The event will be replaced by
the underscore parameter on all platforms in all releases except the
initial one. Contact Oracle Support for details of setting events on an
instance.


7.0 MIGRATION
=============

See the Oracle 8i Migration guide (Release 8.1.7) on the 8.1.7
documentation CD for migration issues.


8.0 ORACLE CALL INTERFACE (OCI)
===============================

8.1 BUILDING OCI APPLICATIONS AND/OR EXTERNAL PROCEDURES
--------------------------------------------------------

The $ORACLE_HOME/rdbms/demo directory contains not only demos but a
Makefile that must be used as a template on how to build your own OCI
applications and/or external procedure. Development of new makefiles to
build an OCI application and/or an external procedure should consist of the
customization of the Makefile provided by adding your own macros to the
link line. However, Oracle requires that you keep the macros provided in
the demo Makefile, as it will result in easier maintenance of your own
Makefiles.


9.0 XA
======

When building a TP-monitor XA application, ensure that the TP-monitors
libraries (that define the symbols ax_reg and ax_unreg) are placed in the
link line before Oracle's client shared library. If your platform does not
support shared libraries or if your linker is not sensitive to ordering of
libraries in the link line, use Oracle's non-shared client library. These
link restrictions are applicable only when using XA's dynamic registration
(Oracle XA switch xaoswd).

Oracle8 does not support 7.1.6 XA calls (although it does support 7.3 XA
calls). Thus, 7.1.6 XA calls need to relink the tuxedo applications with
Oracle8 XA libraries.


10.0 TRANSPARENT APPLICATION FAILOVER
=====================================

Select Failover is implemented by transparently reexecuting the SELECT
statement and then bringing the cursor up to the same point as it was
before the failure. Thus, if the original query took an hour, failing over
the query will also take about an hour. Also, Select Failover only occurs
after Session Failover has occurred. Thus, if a client is doing a parallel
query and a slave dies, the query will not be transparently restarted.


11.0 ADVANCED QUEUING
=====================

11.1 PROPAGATION JOBS
---------------------

Propagation jobs are owned by SYS, but the propagation occurs in the
security context of the queue table owner. Previously propagation jobs were
owned by the user scheduling propagation, and propagation occurred in the
security context of the user setting up the propagation schedule. The queue
table owner must be granted EXECUTE privileges on the DBMS_AQADM package.
Otherwise, the Oracle snapshot processes will not propagate and generate
trace files with the error identifier SYS.DBMS_AQADM not defined. Private
database links owned by the queue table owner can be used for propagation.
The user name specified in the connection string must have EXECUTE access
on the DBMS_AQ and DBMS_AQADM packages on the remote database.


12.0 INITIALIZATION PARAMETERS
==============================

12.1 RECOVERY_PARALLELISM
-------------------------

The book Oracle8i Designing and Tuning for Performance (A76992-01)
incorrectly states that the RECOVERY_PARALLELISM initialization parameter
applies to media recovery. This is incorrect. The RECOVERY_PARALLELISM
initialization parameter specifies the number of concurrent recovery
processes for instance or crash recovery only. Media recovery is not
affected by this parameter.

12.2 DEFAULT BUFFER CACHE SIZE
------------------------------

The default buffer cache size in version 8.0.x is 50 buffers. In 8.1.x, the
default buffer cache size is calculated to be as many buffers as will fit
in 48MB.

For example, if the database block size is 2K (the default value for
DB_BLOCK_SIZE), the default value of DB_BLOCK_BUFFERS is 24576.

Oracle recommends you explicitly set DB_BLOCK_BUFFERS to the required size.


13.0 MEDIA MANAGEMENT SOFTWARE
==============================

13.1 USING LEGATO STORAGE MANAGER (LSM) ON UNIX
-----------------------------------------------

For details about LSM, see READMELSM.doc, which is the separate README for
the Legato Storage Manager.

13.2 USING A MEDIA MANAGER ON WINDOWS-NT
----------------------------------------

Oracle on Windows-NT accesses the media management library via a DLL. The
media manager's install process must install the correct DLL for its
interface library. It is not necessary to relink the Oracle executable.


14.0 ORACLE PARALLEL SERVER
===========================

(See chapter in the 8.1.7 Oracle8i Documentation Addendum on this topic.)

14.1 ENVIRONMENT CONSIDERATIONS FOR INTERPROCESS COMMUNICATIONS (IPC)
---------------------------------------------------------------------

The Oracle server requires the shared library libskgxp.so to reside in
$ORACLE_HOME/lib directory where Oracle was installed. Moving an Oracle
binary from one ORACLE_HOME to another will result in dynamic link time
failures.

14.2 ADDING AND REPLACING NOTES IN OPS
--------------------------------------

Refer to the Oracle Website,
http://www.oracle.com/database/options/parallel, for procedures on adding
and replacing nodes in Oracle Parallel Server clusters. These procedures
are valid for Oracle releases 8.1.x on both UNIX and Microsoft Windows NT
platforms.


15.0 DATABASE SECURITY
======================

15.1 PASSWORD MANAGEMENT
------------------------

Some of the Password Management features are not supported by Server
Manager line mode (svrmgrl).

   * When a password is about to expire and is in the grace period, if the
     user connects through svrmgrl, the warning message that the password
     is about to expire will not appear.

   * If the password has already expired, it simply returns the error and
     does not allow the user to connect. SQL*Plus, however, does display
     the message that the password has expired, asks for the old and new
     passwords, and changes the password after authentication,
     verification, and so forth.

15.2 ORACLE SECURITY SERVER
---------------------------

Version 8.1.7 does not include support for Oracle Security Server. The
feature set supplied by Oracle Security Server, with the exception of X.509
certificate generation, has been replaced by the enterprise user management
feature of Oracle Advanced Security.


16.0 LOBs
=========

16.1 LOB DEMOS
--------------

Current LOB demos work for non-multibyte database character sets only.


17.0 STRUCTURED QUERY LANGUAGE (SQL)
====================================

17.1 USING EVENT 10408 TO AVOID COMPATIBILITY PROBLEMS WITH NEW FUNCTION
     NAMES AND KEYWORDS
------------------------------------------------------------------------

Oracle 8.1.6 introduced a number of new function names and keywords. If
your applications encounter naming compatibility problems as a result of
these new terms, you can set event 10408 to block out the new function
names and keywords.

Event 10408 is set in the initialization parameter file and is disabled by
default. Enable it as follows:

    event = "10408 trace name context forever, level 1"

When event 10408 is enabled, it blocks the keywords OVER and CASE, and the
built-in SQL functions FIRST_VALUE, LAST_VALUE, LAG, LEAD, RANK,
DENSE_RANK, CUME_DIST, NTILE, RATIO_TO_REPORT, ROW_NUMBER, COVAR_POP,
COVAR_SAMP, CORR, REGR_SLOPE, REGR_INTERCEPT, REGR_COUNT, REGR_R2,
REGR_AVGX, REGR_AVGY, REGR_SXX, REGR_SYY, REGR_SXY, VAR_POP, STDDEV_POP,
VAR_SAMP, STDDEV_SAMP, and PERCENT_RANK.


18.0 NATIONAL LANGUAGE SUPPORT
==============================

(See chapter in the 8.1.7 Oracle8i Documentation Addendum on this topic.)

18.1 LOBS
---------

Current LOB demos work for non-multibyte database character sets only.

18.2 NLS DEMO DIRECTORY
-----------------------

The location of NLS demo files has changed from:

    $ORACLE_HOME/nlsrtl/demo

to

    $ORACLE_HOME/ocommon/nls/demo

The demo directory contains the following sample files for character set
customization as documented in Appendix B of the Oracle8i National Language
Support Guide:

    $ORACLE_HOME/ocommon/nls/demo/lx0boot.nlt
    $ORACLE_HOME/ocommon/nls/demo/lx22711.nlt

18.3 Y2000 Date FORMAT ISSUES
-----------------------------

The default date format for all territories was changed in 8.1.6 from "YY"
to "RR" and from "YYYY" to "RRRR". This update will provide better support
for Y2K issues. It affects only date conversions from character strings
into the DATE datatype.

For detailed information on the behavior of the new default settings,
please refer to the section "Date Format Models" in the Oracle8i SQL
Reference.

If you wish to revert to the pre-8.1.6 behavior, you can set your date
format back to "YY" or "YYYY" by specifying NLS_LANG and NLS_DATE_FORMAT in
the client environment.

18.4 UNICODE 3.0 SUPPORT
------------------------

Unicode 3.0 is now supported in the Oracle character sets UTF8 and UTFE. It
is synchronized with ISO/IEC 10646-1 second edition, and includes an
additional 10,307 code points, updates on the general category and casing
features. Other Unicode 3.0 features will be provided in future releases of
the Database.

18.5 DATABASE CHARACTER SET MIGRATION TOOL
------------------------------------------

A new NLS utility called the Character Set Scanner (csscan) is shipped with
Oracle 8.1.7. This utility is created at install time similar to the Import
and Export tools under the $ORACLE_HOME/bin directory. This tool allows the
users to evaluate the impact of migrating an existing database to a new
character set. The tool scans the data in the database

including the data dictionary and provides an analysis of the current data,
highlighting data which will be converted when migrated to the new database
character set.

Please refer to the Character Set Scanner documentation in the addendum for
more information.

18.6 SIMPLIFIED AND TRADITIONAL CHINESE CONVERSIONS
---------------------------------------------------

This feature offers support for Simplified and Traditional Chinese
conversions, by enabling you to view Simplified Chinese data on Traditional
Chinese clients and Traditional Chinese data on Simplified Chinese clients
regardless of the type of Chinese data (Traditional or Simplified) being
stored in the database. This is performed by mapping individual Chinese
characters to their counter parts in Traditional and Simplified forms.
However, transformation mappings are not possible/available for all Chinese
characters, hence replacement characters may still exist for some cases.

In prior releases, without this mapping, Simplified and Traditional forms
of Chinese characters that have separate encoding in Unicode will result in
a mapping to the '?' character. With this new conversion, loss of
information is minimized.

Please note that the conversions are done on aper-character basis, context
may be lost during the character transformations. For example, one
Simplified Chinese character may correspond to two or more Traditional
Chinese characters. Normally only one of these is the correct one depending
on the context. Oracle provides one to one mapping from one Simplified
Chinese character to one Traditional Chinese character and vice versa only
, so in some cases the meaning of the words could be nonsensical.

18.7 HONG KONG SUPPLEMENTARY CHARACTER SET
------------------------------------------

A new database character set ZHT16HKSCS in 8.1.7 supports the Hong Kong
Supplementary Character set (HKSCS), ZHT16HKSCS is compatible with
Microsoft's HKSCS implementation on Traditional Chinese Windows. For more
information on the HKSCS standard, please refer to
http://www.digital21.gov.hk/eng/hkscs/index.html

18.8 NEW EBCDIC CHARACTER SETS
------------------------------

The 8.1.7 release introduces 4 new EBCDIC character sets. Russian Cyrillic
- CL8EBCDIC1025R and Greek - EL8EBCDIC875R, they are the replacements for
CL8EBCDIC1025S and EL8EBCDIC875S character sets with the correction of two
character assignments. In general, the new replacement character sets
should be used. The existing character sets CL8EBCDIC1025S and
EL8EBCDIC875S are supported for compatibility only. The remaining two new
character sets are Siemens West European-WE8BS2000E, which is based on the
ISO8859P15 codepoint definition with EURO support added and Siemens East
European -EE8BS2000.

18.9 IMPROVED ALTER DATABASE CHARACTER SET SUPPORT
--------------------------------------------------

In prior releases, the ALTER DATABASE CHARACTER SET command supports the
upgrade of the character set US7ASCII to a strict ASCII superset only. In
8.1.7, this has been expanded to cover all subset and superset character
sets. For a listing of subset and superset character sets, please refer to
the Reference Material section of the document addendum.

18.10 AL24UTFFSS CHARACTER SET DESUPPORT
----------------------------------------

Oracle Corporation intends to remove support for the Character Set
AL24UTFFSS as the database character set in the next major release.
AL24UTFFSS was introduced with Oracle7 as the Unicode character set
supporting UTF-8 encoding scheme based on the Unicode standard 1.1, which
is now obsolete. In Oracle8 and Oracle8i, we have the database Character
set UTF8, which includes the Unicode enhancements based on the latest
Unicode standard 3.0.

Oracle Corporation recommends customers use UTF8 as the Unicode character
set for Oracle8 and Oracle8i. The migration path for AL24UTFFSS is to
upgrade to UTF8. As with all migrations to a new database character set,
Oracle recommends customers use the Character Set Scanner (csscan) for data
analysis before attempting to migrate your existing database character set
to UTF8.

18.11 NCHAR SUPPORT
-------------------

The Oracle8i Server introduced in release 8.0 a NATIONAL CHARACTER (NCHAR)
datatype that allows for a second, alternate character set in addition to
the original database character set. NCHAR supports a number of special,
fixed-width Asian character sets that were introduced to provide for higher
performance processing of Asian character data. Examples of fixed-width
character sets are:

   * JA16EUCFIXED

   * JA16SJISFIXED

   * ZHT32EUCFIXED

Starting with the next major release of the Oracle8i Server, the NCHAR,
NVARCHAR, and NCLOB data types will be limited to the Unicode character set
encoding only. Any other Oracle8i Server character sets that are currently
available under the NCHAR datatype, including Asian character sets (e.g.,
JA16SJISFIXED), will no longer be supported. The migration path for
existing NCHAR, NVARCHAR, and NCLOB columns will be via export and import.

18.12 RESTRICTED ALTER DATABASE CHARACTER SET COMMAND SUPPORT (CLOB and
      NCLOB)
-----------------------------------------------------------------------

In Oracle 8.1.5, 8.1.6, and 8.1.7 , CLOB and NCLOB datatypes are always
stored as UCS-2 (2-byte fixed-width Unicode) for multibyte database
character sets. For single byte database character sets, CLOBs and NCLOBs
are stored as the database character set and the national character set
respectively. If the database or national character set is migrated from
single byte to multiple byte via the ALTER DATABASE CHARACTER SET or ALTER
DATABASE NATIONAL CHARACTER SET command, the CLOB or NCLOB columns will
remain in the original database character set encoding, hence introducing
data inconsistency in the CLOB columns.

The migration path for CLOB and NCLOB columns will be first export and drop
the tables containing CLOB and NCLOB columns, then ALTER DATABASE CHARACTER
SET and/or ALTER DATABASE NATIONAL CHARACTER SET and import.


19.0 REPLICATION
================

(See chapter in the 8.1.7 Oracle8i Documentation Addendum on this topic.)

19.1 PROCEDURES
---------------

Restriction: Do not use the DBMS_SNAPSHOT.REFRESH_ALL_MVIEWS and
DBMS_SNAPSHOT.REFRESH_DEPENDENT procedures to refresh snapshots used in a
replication environment.

Workaround: Use the DBMS_REFRESH.REFRESH or the DBMS_SNAPSHOT.REFRESH
procedures to refresh your snapshots in a replication environment.

19.2 SSL CONNECTIONS
--------------------

SSL connections with Java RepAPI are not supported in version 8.1.7.

19.3 ORACLE 8i REL. 3 (8.1.7) DOCUMENTATION ERRATA
--------------------------------------------------

The section on page 10-4 in the version 8.1.7 Oracle8i Documentation
Addendum is incorrect. This section is titled "Reduced Quiesce in Single
Master Environments with No Updatable Snapshots".

The following section completely replaces the section in the addendum:

Reduced Quiesce In Single Master Environments Not Using Minimum
Communication

In a single master environment, if all of the updatable snapshots do not
use minimum communication in the detection of conflicts, then quiesce is no
longer required for the operations listed in the following table. This
table also lists the procedure in the DBMS_REPCAT package that corresponds
to each operation. If at least one updatable snapshot uses minimum
communication to detect conflicts, make sure you:

  1. Propagate all of the deferred transactions at the databases containing
     updatable snapshots using minimum communication before you perform the
     administration operations to the master group..

  2. Do not allow any database manipulation language (DML) changes on the
     updatable snapshots that use minimum communication until you have
     finished the administration operation on the master site and
     regenerated replication support for the snapshot.

See Also: "Minimum Communication" on page 5-29 of the version 8.1.6
Oracle8i Replication book (A76959-01)

Use the respective DBMS_REPCAT procedure to do the following:

   * Adding members to an existing column group use ADD_GROUPED_COLUMN

   * Creating an empty column group use DEFINE_COLUMN_GROUP

   * Dropping a column group use DROP_COLUMN_GROUP

   * Removing members from a column group use DROP_GROUPED_COLUMN

   * Creating a new column group with one or more members use
     MAKE_COLUMN_GROUP

   * Specifying use of an alternate column or group of columns, instead of
     the primary key, to determine which columns of a table to compare when
     using row-level replication use SET_COLUMNS


20.0 64-BIT ISSUES
==================

Oracle now provides support for 64-bit systems. This support eliminates the
2GB addressing limitation of 32-bit releases. Therefore, SGAs (system
global areas) and PGAs (program global areas) are limited only by the
physical memory on the computer system. 64-bit addressing can improve
performance by allowing very large buffer caches to be configured, thereby
reducing I/Os. Further, by eliminating the limit on the maximum size of the
shared pool, 64-bit addressing can allow more users to be logged into
Oracle.

Check with your Oracle sales representative to determine availability of
release CDs for your platform for 64-bit systems.


21.0 TYPES
==========

Type specifications and their bodies can be kept in shared memory, so that
they will not be aged out with the normal LRU mechanism. You must have
EXECUTE privilege on a type to be able to keep it pinned in shared memory.
An attempt to keep a type TY whose body does not exist will result in only
keeping the type specification TY. Once the type body for TY is created,
you must keep the type again if you wish to keep the type body for TY also
pinned in shared memory. The following example demonstrates how a type TY
in u1's schema can be kept pinned in shared memory by user u2 (u2 is
assumed to have EXECUTE privilege on u1.TY):

begin
  sys.dbms_shared_pool.keep('u1.TY', 'T'); -- the flag can be either 'T' or 't'
end;


22.0 DATA DICTIONARY
====================

22.1 DATA DICTIONARY FUTURE VIEW CHANGES
----------------------------------------

The following V$ tables may change in a future release of Oracle:

   * V$PQ_SESSTAT may be removed.

   * V$PQ_SYSSTAT may be removed. Use the new Oracle8i view
     V$PX_PROCESS_SYSSTAT instead.

   * V$PQ_SLAVE may be removed. Use the new Oracle8i view V$PX_PROCESS
     instead.

   * V$PQ_TQSTAT may be renamed to V$PX_TQSTAT.


23.0 MATERIALIZED VIEWS
=======================

23.1 USING EVENT 30441 TO AVOID ERRORS
--------------------------------------

By default, fast refresh in a data warehousing environment fails if both
direct-path load and DML insert operations are performed. You can avoid
this error by enabling event 30441, which supports fast refresh of the
direct-path load portion while ignoring the DML operations. The fast
refresh is based only on the direct-loaded rows.

Event 30441 is a session event that is disabled by default. To enable it,
issue the following statement:

ALTER SESSION SET EVENTS '30441 trace name context forever, level 1';

Disable the event as follows:

ALTER SESSION SET EVENTS = '30441 trace name context off';

23.2 FAST REFRESH OF MATERIALIZED VIEWS
---------------------------------------

If you specify REFRESH FAST for a single-table aggregate materialized view,
you must have created a materialized view log for the underlying table, or
the command will fail. The workaround is to specify REFRESH FORCE, which
will still perform a fast (incremental) refresh whenever possible.

23.3 QUERY REWRITE
------------------

If the CURSOR_SHARING parameter is set to FORCE, some rewrites that were
text match based in 8.1.5 may no longer be possible from 8.1.6. This is
because literals in the query are replaced by bind variables, so the SQL
text of the query no longer matches that of the materialized view. To avoid
this behavior, set CURSOR_SHARING to EXACT (which is the default from
8.1.6). Doing so will prevent literal replacement when using query rewrite.

23.4 NLS PARAMETERS
-------------------

Users should not change the default NLS parameters when using materialized
views that contain either of the following:

  1. Equi-joins where one side of the join is character data. The result of
     this equi-join depends on collation and this can change on a session
     basis, giving an incorrect result in the case of query rewrite or an
     inconsistent materialized view after a refresh operation.

  2. Expressions that generate internal conversion to character data in the
     select list of a materialized view, or inside an aggregate of a
     materialized aggregate view. This restriction does not apply to
     expressions that involve only numeric data, for example, a+b where a
     and b are numeric fields.


24.0 ORACLE TRACE COLLECTION SERVICES
=====================================

(See chapter in the 8.1.7 Oracle8i Documentation Addendum on this topic.)

Beginning with version 8.1.6, Oracle Trace collection services provide a
new optional circular data collection mode that allows Oracle Trace data to
be collected over an extended period of time, but with only the most recent
data retained, up to a user-specified file size limit.

To use the circular mode from the Oracle Trace Command Line Interface
(CLI), specify a negative value for the CLI "start collection" max file
size parameter (-2 GB limit); max size each of (up to 2) files is its
magnitude.

Please see the Oracle Technology Network (http://technet.oracle.com/) for
on-line access to the latest "Oracle Trace Developer's Guide", which
includes more detail on the Oracle Trace CLI features and their use.


25.0 interMEDIA, SPATIAL SERIES, VISUAL INFORMATION RETRIEVAL
=============================================================

(See chapter in the 8.1.7 Oracle8i Documentation Addendum on this topic.)

25.1 interMEDIA TEXT README, Release 8.1.7
------------------------------------------

The interMedia Text new features for this release are described in Chapter
1 of the Oracle8i Documentation Addendum, release 8.1.7. This readme
describes the interMedia Text new features and enhancements not included in
the Addendum. It also describes how to upgrade your system manually from to
from 8.1.6 to 8.1.

25.2 interMedia DATABASE OBJECT INSTALLATION
--------------------------------------------

The interMedia database object installation verification script located in
$ORACLE_HOME/ord/im/admin/imchk.sql will always report an INVALID package
status for the interMedia component . The DBA can correct this problem by
making the following code changes to that file:

  1. Move the initialization of the expected_status variable to before the
     first call to Cartridge.Check_Component_Status().

  2. Change 'ORDIMErrorCodes' to 'ORDIMERRORCODES' in the first call to
     Cartridge.Check_Component_Status().

  3. Rerun the imchk.sql script to verify installation of interMedia
     objects in the target database.

Example: OLD

-- check common error handling package
  Cartridge.Check_Component_Status(
        'ORDIM', 'ORDSYS',
        'ORDIMErrorCodes', 'PACKAGE','Internal Package',
        expected_status, actual_status);
-- check source first
  expected_status:='VALID';

Example: NEW

  expected_status:='VALID';
-- check common error handling package
  Cartridge.Check_Component_Status(
        'ORDIM', 'ORDSYS',
        'ORDIMERRORCODES', 'PACKAGE','Internal Package',
        expected_status, actual_status);
-- check source first


26.0 GENERIC ODBC CONNECTIVITY
==============================

The ODBC agent cannot load libraries if they are located in directories
that are not listed in the LD_LIBRARY_PATH environment variable. The
environment variable LD_LIBRARY_PATH should be set before the Net8 listener
that spawns the gateway is started.

For example:

If your ODBC driver manager is located in /opt/odbc/lib, you should include
this directory in your LD_LIBRARY_PATH before starting the Net8 listener
that would spawn off the agent.

In csh:

$ lsnrctl stop
$ setenv LD_LIBRARY_PATH /opt/odbc/lib:${LD_LIBRARY_PATH}
$ lsnrctl start

In bourne shell:

$ lsnrctl stop
$ LD_LIBRARY_PATH=/opt/odbc/lib:${LD_LIBRARY_PATH}
$ export LD_LIBRARY_PATH
$ lsnrctl start


27.0 TIME SERIES
================

The functions in the Time Series option have migrated to SQL in version
8.1.7, obviating the need for a Time Series option.

The classes of functions that were implemented in SQL as part of the base
8.1.7 server version include the following:

   * Windowing functions, such as moving average

   * Cumulative functions

   * Ranking functions

   * Lead/lag functions

   * Business intelligence functions (covariance, correlation, and linear
     regression)

These functions will be callable from SQL, and will be implemented in a
relational framework (no PL/SQL or Oracle Objects). See Oracle8i SQL
Reference (A76989-01) for a description of these SQL functions.

The benefits of this approach include:

   * Higher performance -immediate compatibility with other new Oracle
     features (such as timestamps and materialized views)

   * Wider acceptance by tools

The technical details of the migration from the Time Series option to SQL
are discussed in the following white papers (available on
http://www.oracle.com/database/options):

   * "Analytic Functions for 8i"

   * "Migrating from Oracle Time Series to SQL Analytics: Scaleup and
     Scaledown without Calendars"

   * "Migrating from Oracle Time Series to SQL Analytics: Time Series
     Functions"


28.0 JAVA
=========

Beginning with 8.1.6, a fully functional Java virtual machine (VM) is part
of the RDBMS. Individual README files are included for:

   * The Java VM, Java stored procedures, and EJB/CORBA in the JAVAVM
     directory

   * Java Database Connectivity (JDBC) support, in the JDBC directory

   * SQLJ (embedded SQL in Java), in the SQLJ directory

Please refer to the individual README files for detailed information of
known problems and configuration issues for these Java products.


29.0 CONFIGURATION ASSISTANTS
=============================

The Assistants should be run as a user who is a member of the DBA group.

29.1 DATABASE CONFIGURATION ASSISTANT
-------------------------------------

The Configuration Assistant must have read/write access to the directory
where the database datafiles will be created.

The Database Configuration Assistant does not support single instance
database creation on raw devices. However, Oracle Parallel Server databases
can be created on raw devices. (Related bug: 891248.)

Workaround: Do not specify any RAW device location in the tool. Use the
'Save as script' option, change datafile location (to raw devices), and use
the REUSE option in datafiles SQL.

When creating or configuring the database using the Database Configuration
Assistant (DBCA), make sure you logged in as the same user who owns the
ORACLE_HOME. (Related bugs: 993099, 998153, 1050166, 1053512, 1101672.)

Workaround: Log in as ORACLE_HOME owner account to create or configure
databases.

29.2 ORACLE DATA MIGRATION ASSISTANT
------------------------------------

(See 33.2 KNOWN ODMA BUGS at the end of this readme.)

29.2.1 8.1.6 Instance Exists On The Node
----------------------------------------

If an 8.1.7 instance exists on the node, it will be listed as an upgrade
candidate. However, this database cannot be upgraded because it is already
in the current release. (BUG 820711)

Workaround: None known.


30.0 XML PARSER
===============

XML Parser for PL/SQL & Class Generator for Java are not being loaded into
the 8.1.7 database while upgrading from 8.1.5/8.1.6. In order to use XML
Parser for PL/SQL, you need to load $ORACLE_HOME/lib/xmlplsql.jar and run
$ORACLE_HOME/xdk/plsql/parser/bin/load.sql. To use Class Generator for
Java, you need to load $ORACLE_HOME/lib/classgen.jar.


31.0 8.1.7 FIXED BUGS
=====================

------------------------------------------------------------------------------

Category      BugNo                               Description
--------      -----                               -----------

                        A non-unique reverse key index on a parent table cannot be used to
                        enforce a foreign key constraint on the child table. Similarly, a
Corruption    993935*   referential constraint cannot be enforced when a non-unique reverse
                        key index is defined on the foreign key column of a child table.
                        Note: The symptoms of this bug which can cause logical corruption can
                        be seen in duplicate <Bug:1120055>. See <NOTE:100195.1> on Metalink

                        If a reverse key index exists on the columns of a foreign key
                        constraint then it is possible to delete parent rows while child rows
              1120055*  exist. This can introduce logical corruption in the data. Workaround:
                        Do not use REVERSE KEY indexes on columns making up a foreign key
                        constraint. Note: This is really a duplicate of <Bug:993935>. See
                        <NOTE:100195.1> on Metalink

                        This problem was introduced in 8.0.6 and 8.1.6 by the fix for
              950623+   <bug:702389> CREATE OR REPLACE VIEW loses granted permissions on that
                        view.

                        SMON may crash ORA-600 [ktssdro_segment1] due to SEG$ / UET$
                        corruption which can be introduced by this bug. There is a small
              1000907+  timing window where this dictionary corruption may occur. Support
                        Notes: <Event:10061> may be used to stop SMON temp segment cleanup to
                        look into the problem.

                        If an update on a row forced the undo record to be split into two
                        blocks, the undo record (an array of buffers) could become corrupted
              1082335+  if one of the buffers itself had to be split. This corruption is
                        highly unlikely to occur. Symptoms can vary but the problem replays
                        on recovery

                        COMPRESSED KEY INDEXes can become logically corrupt signalling one of
                        a number of errors (eg: ORA-600 [6101], ORA-600 [6121] or similar).
              1250521+  This problem can easily occur if using compressed key indexes. .
                        Workaround: Do not use compressed key indexes This cannot occur in
                        8.0 as this is an 8.1 feature.

                        With sqlldr, rows get inserted into the table even if an after
              690443    statement trigger fails and table ends up with wrong rows. This
                        happens if there is also a row level trigger that passes.

                        Unix file size limit potentially can corrupt oracle blocks if an
              887509    oracle block crosses the limit boundary. File size limits are usually
                        specfied in units of 512 byte blocks which means that an oracle block
                        can possibly begin below the limit and end above.

                        If a file is added to the database without specifying the file size,
                        resize operations could fail with internal error [2847] or
              925105    [kcfnew_1]. The addition can leave a corrupt entry in the dictionary
                        which may require a tablespace rebuild. See <NOTE:107591.1> on
                        Metalink

                        Direct-path loader sometimes caused corrupted data to be loaded if
              939510    both the CONTINUEIF continuation clause and the PIECED field option
                        are specified Workaround: Use conventional load.

                        Trigger IN-OUT bind variables may evaluate as NULL when all IN
                        references to the variable (i.e. where the value of the bind is read
                        rather than written) are parenthesized. Eg: IF (:new.colval) is null
              1035754   THEN :new.colval:='bad'; END IF; will always set :new.colval to 'bad'
                        as (:new.colval) appears as NULL. This can cause logical data
                        corruption if not noticed. Workaround: Do not put binds in
                        parenthesis. Eg: IF :new.colval is null THEN :new.colval:='bad'; END
                        IF; avoids the problem

                        Export of a partitioned table having multiple index constraints can
                        generate incorrect syntax in the export dump file. This can lead to a
              1067602   subsequent failure upon import. Workaround: It is possible to work
                        around this problem by pre-creating the table and associated
                        constraints and use IGNORE=Y

                        Float / Double client side bind values may cause invalid Oracle
              1098422   numbers. This may result in ORA-6502 errors from PL/SQL or other
                        symptoms due to corrupt numbers.

                        When using XA transaction having multiple branches in a transaction,
              1116499   ORA-600[6856] and data corruption could occur if the branches were
                        simultaneously rolled back.

                        Under very specific conditions update of a column covered by a BTREE
              1143747   index may not update a row which should be updated. This is most
                        likely to occur with very full shallow indexes where the update
                        causes the root block to be split.

                        Direct load operations (direct load, CTAS, APPEND) may set the wrong
                        space usage on a block if the table being loaded has more than 255
                        columns but the head pieces end up less than the "stub space" (9
              1146253   bytes). This can introduce a silent corruption which is only detected
                        later on, (or will crash the load session if block checking is
                        enabled). . This cannot occur in Oracle7 as there cannot be > 255
                        columns . Analyze of affected objects typically show: "kdbchk: the
                        amount of space used is not equal to block size "

                        last_analyzed column in the view *_tables is filled with a corrupt
              1161906   date when only an index is ana The problem occurs because the date
                        field is not set when CREATE INDEX ... COMPUTE STATISTICS is used.

                        A direct load into an empty partition which has two or more
                        subpartitions will corrupt the local indexes in all other partitions
              1171627   are truncated. Workaround: a. Insert at least one row into the
                        partition you wish to load into or b. Re create all local indexes
                        after the load

                        While processing an insert of a prefix key in a compressed index a
                        data structure is allocated on a local stack. The structure may then
                        be read outside the scope of the local stack. This is incorrect
              1179002   because the data structure may have been released and reused for
                        another purpose before the insert has finished with it. This could
                        cause corruption to COMPRESSED KEY INDEXES. Workaround: Do not
                        compress the index.

                        Parallel direct load may set index status to VALID when no rows are
              1186914   loaded, even though a concurrent load job may have made the index
                        invalid by loading rows. This can introduce a mismatch between index
                        and table data. . Workaround: Recreate indexes after a load.

                        This problem was introduced in 8.1.6.0 Create INDEX on a snapshot /
                        MVIEW can produce a corrupt index. This may show up as ORA-600
              1228658   [13004] or an ORA-600 [25012] or ANALYZE TABLE snapshot_name VALIDATE
                        STRUCTURE CASCADE reporting ORA-1499. This can easily occur if the
                        index can be built from an existing index on the snapshot.

                        If timed_statistics is set to true, parallel queries and parallel
              1231642   CREATE TABLE AS SELECT could hang. Additionally Parallel CREATE TABLE
                        AS SELECT can produce a corrupt table. Workaround: Disable
                        TIMED_STATISTICS for parallel operations.

              1245392   Fast refresh of a materialized view / snapshot may miss some rows
                        when more than 1 snapshot is based on the same master table.

                        DML statements against object tables with common subexpressions and
              1248170   triggers (with OUT-binds) defined on the target table may produce
                        incorrect results

                        Constraints are not enforced properly while doing an array insert.
              1255474   Duplicate rows may be inserted when enforcing uniqueness using
                        non-unique index. This can cause logical corruption of the data.

                        DBVERIFY reports blocks containing all zeroes as a normal empty
              1275263   blocks when they should be considered corrupt unless the datafile has
                        been migrated from Oracle7.

                        This problem was introduced in Oracle8.0 Operations on a table in a
                        cluster which has previously been truncated can fail with ORA-8103
              1283521   due to corrupt dictionary information. In particular DIRECT EXPORT
                        will signal ORA-8103 for a cluster which has had truncate run against
                        it in the past.. See <NOTE:109134.1> on Metalink

                        When a global partitioned index is created with the 'reverse', option
              1312425   for a partition table, the index table can be corrupted. Analyze
                        table will show a mismatch with ORA-1499. Query against the table
                        sometimes yields incorrect result.

                        While using SQL*Loader in direct mode with the SINGLEROW option, if
              1322944   the load fails then the Index may still be marked as USABLE, but the
                        table and index are inconsistent.

                        When doing media recovery using a backup controlfile (this includes
                        using a standby database), if you have had added datafiles or
                        tablespaces to the database that caused the controlfile to expand,
Recovery      1045211   then recovery can fail with ORA-1118 or ORA-1667, because media
                        recovery does not automatically resize the datafile and/or tablespace
                        areas of the controlfile. Workaround: Use a newer controlfile, or
                        re-create the controlfile for the database being recovered.

                        In Oracle8i it is possible for a corruption in the online logs to be
                        reported and then skipped in the archive stream. This can leave a gap
              1092759   in the valid archive log stream which has been skipped rather than
                        manually acknowledged, making it impossible to fully recover the
                        database at a later point in time.

                        The values for the init.ora parameters DB_FILE_NAME_CONVERT and
              1248580   LOG_FILE_NAME_CONVERT are treated in a case sensitive manner, even on
                        systems with case insensitive file names.

                        In standby environments with the primary database archiving to local
              1311431   and remote destinations, if the only local destination runs out of
                        space, the local archiver may signal [kcrrmario.1].

Advanced                ORA-02083 may occur exporting an AQ queue if there are remote
Queuing       875427    subscribers.

              1047150   The QMN process is not very aggressive at cleaning up AQ IOT's

              1234770   AQ spins in first message if OCI_ATTR_CORRELATION is specified as a
                        OCI_DTYPE_AQDEQ_OPTIONS attribute.

              1288817   Snapshot process performing AQ propogation grows in size

                        If the destination database fails during propagation it is possible
              1302846   for propagation to never propagate some messages. The reason for this
                        was because we did not rollback changes on the source correctly.

                        UPDATE or DELETE statements with all the predicates resolved through
Bitmap        941018    bitmap index access could raise internal error ORA-600[13013] (CANNOT
Indexes                 GET STABLE SET) if the predicates involve BITMAP OR/NOT.

                        ora-1037 can occur with a large number of bitmap indexes and
              953424    partitions on a table. For this problem to occur then: Number of
                        bitmap indexes * Number of partitions must be GREATER THAN 8000

              956131    ORA-600[15819] can be signalled when rebuilding a bitmap index in
                        parallel for larger block sizes ( > 4k )

                        ORA-600[12403] can occur for queries using bit map indexes,
              967492    specifically for BIMAP OR rowsources during Fetching In 8.1 the error

                        ORA-600[20012] may be reported instead in the same scenario.
              971769    Export does not export the statistics of bitmapped indexes.

                        When a query executes with "BITMAP KEY ITERATION" in the plan with
              1038883   SQL_TRACE or TIMED_STATISTICS enabled , the server process may crash
                        with ORA-7445. BITMAP KEY ITERATION typically occurs when there are
                        BITMAP indexes and STAR_TRANSFORMATION is enabled or hinted.

                        This problem was introduced in 8.1.5 Queries of the form: select ...
                        from tab where NOT (c2 = 'x') may fail with ORA-600 [20083] if there
              1051699   is a bitmap index on C1 and a Btree index on C2 and the execution
                        plan includes a BITMAP MINUS of C2s index (btree converted to bitmap)
                        from C1 (bitmap index).

              1110876   Parallel query slave accessing bitmap index sometimes dies with
                        internal error ORA-600 [20040].

                        Statistics on bitmap index collected with CREATE BITMAP INDEX may be
              1131546   inconsistent with the ones collected with ANALYZE in certain
                        situations.

                        Bitmap access path for a complicated where clause query may raise
              1138308   ORA-600 [17116] / coredump. Workaround: Set <Event:10114> to level 1.
                        This can affect performance. See <Note:75713.1> before setting any
                        event.

                        This problem was introduced in 8.1.5 Queries that perform count(*)
              1195108   with group by on columns that have a bitmap index may error with
                        ORA-600[9999]

Crash - Issues          If db_block_ckecking is enabled and a block is corrupted on disk DBWR
likely to               could error attempting to write the block and bring the instance
cause an      1168406*  down. Additionally a corruption on the system tablespace could bring
Instance to             the instance down. With this fix the block will be marked as soft
crash                   corrupt.. See <NOTE:96117.1> on Metalink

              959593    Cntrl-C during truncate could cause ORA-7445 SIGSEGV in ksqcmi() and
                        ORA-00600[1100]

              1061775   An assert ORA-00600 [kclcget_1] might be signalled by LMD process
                        under certain heavy load situations and cause an instance to crash.

                        If a shared server dies during the establishment of a dblink, PMON
              1121157   may crash with an ora-7445 in kmcdlc() while trying to clean up the
                        Virtual Circuit.

              1123988   Dead process cleanup can cause LMON to die with ORA-600[29703]
                        causing the instance to crash.

                        This problem was introduced in 8.1.5 If a member of the current
              1172044   online log group failed multiple times, LGWR errors and crashes with
                        ORA-600 [2745] while closing the file.

                        If an error occurs when opening an outbound circuit for an xa
              1247625   application, then it is possible for PMON to crash when trying to age
                        out a branch whose sestm has expired or which has been killed by
                        asynchronous xa_rollback.

              1279964   PMON can die with ORA-600[4414] if it is unable to get a latch to
                        delete branch information. This can cause the instance to crash.

                        During cleanup of OBJ$, SMON may crash the instance with an
              1310142   ORA-600[16224] Workaround: Set <Event:10052> to disable cleanup of
                        OBJ$. Re-enable the cleanup at less critical times.

                        This problem was introduced in 8.1.5 Selects over a DBLINK may raise
                        ORA-1008 when there is a BIND variable involved. Various forms of
                        statement show this problem. Eg-1: INSERT into LOCAL_TABLE SELECT ..
DB-Link /               FROM tab1@link1, tab2@link1 WHERE col=:BIND Eg-2: SELECT ename FROM
Distributed   974519+   (select distinct ename from emp@sun86link where ename=name group by
                        ename); Workaround: Set EVENT:10127 to level 1 eg: event="10127 trace
                        name context forever, level 1" ** Warning: See <Note:75713.1> before
                        setting any event This prevents the query block optimization code for
                        DB LINKS from being invoked and so avoids the problem.

              648147    Temporary segments are not released after the failure of local DDL
                        involving a query to a distributed database.

                        PL/SQL does not accept the syntax function@dblink(). for
              784046    parameterless calls. Local empty calls are acepted. OK: "select f()
                        from dual;", Not OK: "select f@x() from dual;"

              1007024   When using MTS w/outbound links, and 'alter system kill session', the
                        shared server could core dump without a trace file.

                        This problem was introduced in 8.1.5. A remote collocated join may
                        dump in <Function:MSQOPNWS> when there is a predicate of the form:
              1022399   ":bind variable BETWEEN column1 AND column2" Workaround: Remote
                        co-located joins can be disabled with <Event:10176> Important: Always
                        read <Note:75713.1> before setting any event.

                        If the OPEN_LINKS database parameter is greater than 255, then if a
              1035278   two-phase commit failure occurs, RECO may fail with the internal
                        error ORA-600 [k2rcbk: null gti]. This can prevent the database from
                        starting. Workaround: Set <Parameter:OPEN_LINKS> to 255 or less.

                        This problem was introduced in 8.1.5 A Query which leads to a remote
              1046027   colocated join may return incorrect results if the query has non
                        simple join predicates on the remote tables. This only happens when
                        using CBO.

                        A compile-time error (PLS-707) can occur when PL/SQL code calls a
                        remote procedure with default values of parameters that call a
                        STANDARD function. Eg: Remote procedure REMOTE_PROC(X DATE :=
                        SYSDATE) is called as BEGIN REMOTE_PROC; END; on a PLSQL client side
              1046896   or BEGIN REMOTE_PROC@DBLINK; END; over database link. The problem
                        occurs if the version of "STANDARD" differs between the 2 ends of the
                        RPC. Eg: 8.0 calls 7.3. Workaround: Use a constant default (such as
                        NULL) and use this to indicate that a functional value (such as
                        SYSDATE) should be used.

                        This problem is introduced by the fix for bug:513430 A remote query
              1060189   would occasionally corrupt the session heap and result in ORA-600
                        [17182]. This is most likely to occur if the query expands (Eg: using
                        the USE_CONCAT hint) to several UNION-ALL'ed SELECT statements.

                        This fixes a regression introduced by the fix for <Bug:790632> such
              1063571   that access to remote variables was overly restricted by that fix.
                        This is a CLIENT SIDE bug and can affect forms or other PLSQL based
                        clients.

                        From Oracle8.0 remote queries look up the histogram rowcache for
                        remote columns which can sometimes lead to increased contention on
                        the shared pool. With this fix <Event:10129> can be set (at level 1)
              1065010   to revert back to pre-8.0 behaviour. With this event set remote
                        queries will have less information available to determine the best
                        execution plan. Important: See <Note:75713.1> before setting any
                        event .

                        ORA-600[QKARMTVIEW20] possible from views that select from REMOTE
              1067030   tables Workaround: Set <Event:10127> to disable remote query blocks.
                        NB: This w/a may impact performance.

              1079156   This problem is introduced by the fix for bug:893259 CTAS through the
                        database link might fail with ORA-1401 in multi-byte environment.

                        This problem was introduced by the fix for Bug:622264. When a PLSQL
              1120798   query across a DBLINK uses bind variables it is possible for wrong
                        results to be seen.

                        If a shared server dies during the establishment of a dblink, PMON
              1121157   may crash with an ora-7445 in kmcdlc() while trying to clean up the
                        Virtual Circuit.

                        A database link to a V7 database may raise the errors: ORA-1011:
                        Cannot use v7 compatibility mode when talking to v6 server ORA-2063:
              1230884   preceding line from XXXXXX on connection if the session has
                        previously used , or tried to use, a database link to an Oracle8.1
                        instance. Workaround: Open all Oracle7 links before any 8.1 link.

                        If an error occurs when opening an outbound circuit for an xa
              1247625   application, then it is possible for PMON to crash when trying to age
                        out a branch whose sestm has expired or which has been killed by
                        asynchronous xa_rollback.

                        This problem is introduced in 8.1.5 When the local machine is 8.1.X
                        you access tables via a database link to a remote dataabase and your
                        query uses the EXISTS clause then the EXISTS clause returns false
                        every time causing incorrect results. This occurs regardless of the
              1251491   remote database versions. Eg: select 1 from dual where exists (select
                        * from local805a@TOV805 a ,local805b@TOV805 b where a.a1=b.b1);
                        Workaround: Set <Event:10127> to level 1 to avoid this problem
                        Important: Read <Note:75713.1> before setting any event on a
                        database.

                        ora-600[12811] can occur if a cursor referencing a remote function in
              1259062   the WHERE clause is mapped locally. Workaround: Use the rule based
                        optimizer (where possible) eg: alter session set optimizer_mode=rule

                        In certain cases when database links are used, it is possible to get
              1262540   a core dump in lxdunld with a stack indicating network code called
                        from opirip from an MTS shared server. On NT this can result in an
                        instance crash.

                        Remote Oracle7 database tables may still be accessed in parallel by a
              1265468   local Oracle8i database regardless of the SQL specifying hints to
                        stop parallel access.

                        This problem was introduced in 8.1.5 A query involving the join of 2
                        or more remote tables (over a dblink) could return the wrong result.
              1281200   Workaround Set event:10176 to level 1 Events should NEVER be set by
                        customers unless advised to do so by Oracle Support Services. See
                        <Note:75713.1> for more details.

              1333360   Some queries that use the UNION or UNION ALL structure can core dump
                        when parsed, if one of the UNION [ALL] branches is executed remotely.

Export/Import 239492    Import fails when encountering ANSI style comments in check
                        constraints. Also see <Bug:427043>

                        Import fails when encountering ANSI style comments in CHECK
              427043    constraints. This is due to a problem with the way EXPORT writes the
                        export file. Also see <Bug:239492>.

                        User or Table level export may raise an EXP-3 error when exporting a
                        partitioned table if a partition of that table has been EXCHANGED
                        with another users TABLE. Attempts to extend the partition once the
              655950    original owner has been dropped can also result in ORA-1950 errors.
                        Workarounds: Export as SYSTEM. Only EXCHANGE within the current
                        schema. Notes: The fix ensures that the segment owner is changed on
                        EXCHANGE As such existing EXCHANGED partitions with this problem are
                        corrupt and the fix will not address these.

              731848    Improved the performance of LOB export and import by virtue of
                        reading and writing using the LOB chunksize.

              875427    ORA-02083 may occur exporting an AQ queue if there are remote
                        subscribers.

                        Importing the metadata for a TRANSPORTABLE TABLESPACE which contatin
              907241    a LOCAL PARTITIONED INDEX with SUBPARTITIONS which have been
                        EXCHANGED can raise ORA-600 [6012].

              947083    EXP-56 / ORA-1007 may occur on export of a NESTED TABLE / OBJECT
                        TABLE.

              971769    Export does not export the statistics of bitmapped indexes.

                        Import does not import the table stats even if user and db charsets
              971776    are identical for the FIRST table in a transportable tablespace
                        export file.

                        If a table is renamed after a trigger has been defined on it then
                        export of that table followed by an import will attempt to put the
              975185    trigger on the OLD tablename. Eg: Create table A. Put trigger on A.
                        Rename A to B. Export the schema. Import schema attempts to put the
                        trigger on A not B.

                        Export raises exp-00006 when there are a relatively large number
              980810    datafiles ( around 50 ) in a tablespace when a full database export
                        is performed.

              1044883   Export fails with ORA-1455 and EXP-8 when attempting to export a
                        snapshot having a snapshot id > 32767

                        EXPORT of DB on different platform leaks memory in the Export
              1058861   process. This memory leak can cause the export to fail with errors of
                        the form: "kgefec: fatal error 0"

                        Export of a partitioned table having multiple index constraints can
                        generate incorrect syntax in the export dump file. This can lead to a
              1067602   subsequent failure upon import. Workaround: It is possible to work
                        around this problem by pre-creating the table and associated
                        constraints and use IGNORE=Y

                        Export may fail with EXP-2 if a FILESIZE parameter > 4GB is specified
              1076041   in conjunction with multiple dump files. eg: exp system/manager
                        filesize=4100m file=\(a.dmp, b.dmp\) full=y will fail when the first
                        dump file reaches 4Gb in size.

                        Export fails with EXP-3 when attempting to export a table owned by
                        the DBA performing the export and an index belonging to another
              1080833   schema owner exists on the same table. In 8.0 the index is not
                        exported at all (no error) Workaround: Export as system/manager
                        rather than the table owner.

              1092638   Using Direct Export with MTS may result in a dump (ORA-7445).
                        Workaround: Do not use MTS for direct export.

                        This problem was introduced in 8.1.5 when export of statistical data
                        was introduced. Export process may core dump when writing the
              1106255   DBMS_STATS package ANALSTATS command into the export dump file for
                        tables where histogram values are being collected for one or more
                        columns, and those histograms have more than 140 data values.
                        Workaround: Export without statistics

              1107109   Export fails with EXP-003 when attempting to export functional or
                        bitmapped indexes built on temporary tables.

              1170962   Export by a V7 client of a schema in an 8i database fails with
                        ORA-1436 if the database contains Java objects.

                        ORA-600 [kkzhmvc] can occur during import if the snapshot base table
              1201360   is missing and snapshot has hidden columns. The fix raises ORA-942
                        during import to allow the import session to continue.

              1206380   Import of analyzed table using the IMP_FULL_DATABASE role can fail
                        with ORA-1031 as this role is missing 'analyze any' privilege.

                        This problem was introduced in 8.1.5 EXP-56/OCI-22303 exporting
              1218370   OBJECT table even with the fix for BUG:882543 in place if the
                        'not-exists' dictionary entry has been re-used as a synonym or other
                        dictionary item.

              1229557   Export may write incorrect sizes for datafiles which are larger than
                        4GB into the export dump file.

              1243649   This problem was introduced in 8.1.6 Export silently fails to dump
                        synonyms which exist against objects in remote databases.

              1260483   IMPORT using "TABLES=*" silently imports no rows.

                        Import can fail with ORA-959 "tablespace doesn't exist" with NLS_LANG
              1289441   set to certain values if tables contain column names ending
                        _TABLESPACE.

                        When using analyze command or executing a query after importing
              1296292   statistics made by DBMS_STATS into dictionary, the server process may
                        crash with ORA-7445. Workaround: Do not import statistics

                        This problem was introduced in 8.1.5 A long-running session that
                        creates a large number (>32767) PL/SQL objects (e.g., an import) may
                        core dump while creating a PL/SQL object beyond the 32K limit. (Note
              1298586   this is not a size limit on individual objects but on the total
                        number of objects created in the session) This is most likely to
                        affect long running sessions creating lots of PLSQL objects, such as
                        IMPORT

              1308267   Export incorrectly exports constraint definitions for cartridge
                        schemas that aren't supposed to be exported.

                        Import with SHOW=Y does not show all SQL required to recreate a
              1308272   schema. In particular it does not show ALTER TABLE ADD CONSTRAINT
                        statements to add constraints to a table, but does include ENABLE
                        CONSTRAINT SQL.

Gateways /              When using SQL*PLUS COPY command to copy to an FDS through HS, rows
Heterogeneous 968360    may get duplicated. Eg: If there are 5 rows, and the array size = 3,
Services                6 rows will get inserted, (the last row is duplicated). This problem
                        ONLY affects Heterogenious Services (gateways)

                        A SELECT over a DB LINK from a GATEWAY which uses a SQL function that
              1010782   is not implemented at the remote site fails with ORA-3113/ORA-7445.
                        Eg: "select SYSDATE from dual@dblink" where dblink on a non oracle
                        database will fail .

                        When an Oracle8 server opens a database link connection and the
                        server process has fewer than 'open_links' connections already open,
              1092735   then the server process closes in-active database link connections
                        and re-use their control structures instead of allocating new
                        connection control structures. This is a change in behaviour over
                        Oracle7.

              1097268   "ORDER BY DESC" clause not sent to gateway when it should

                        This bug can occur when running queries against a transparent gateway
                        version 8 and above (these gateways use the heterogeneous services
              1163677   module of the Oracle database server - the earlier ones do not). What
                        will happen is that when the user-session contains a large number of
                        queries that reference data dictionary tables at the non-Oracle
                        system, the error 28506 will be issued.

              1192943   "N" not added to NCHAR literal if the HAVING clause for the gateway
                        is post processed.

                        Accessing FDS through HS through another Oracle may result in
              1258942   ORA-3113 Example, client accesses table emp@link1 (where link1 is an
                        Oracle-Oracle link. emp is a synonym on the target Oracle to an FDS
                        system., i.e emp = emp@hslink; Then there can be an ORA-3113.

                        The combination of temporary tables and temporary tablespaces could
Hangs / Spins 1186884+  cause the server to error out or spin upon abnormal client
                        termination. Workaround: Use PERMANENT tablespace for users TEMP
                        tablespace when using TEMPORARY tables.

              720024    Alter Trigger can possibly cause a deadlock if performed concurrenly
                        with a RENAME on the base tale

              882995    SQL*Loader hangs while loading a NULL value (as in "") into a table.

                        This problem was introduced in 8.1.5 If there are leading whitespaces
              890656    in the record in the datafile that shows the length of the record in
                        VAR option, sqlldr hangs.

                        While running your instance with a value more than 65535 for
              912711    PARALLEL_EXECUTION_MESSAGE_SIZE, parallel execution fails with
                        ORA-12801 or hangs.

                        When using single quotes with a hint '--+' on multibyteDB, SELECT
              943057    statements can hang Workarounds: - Use '/*+ */' instead of '--+' in
                        the hint. - Do not quote the hint

              952323    While loading a LONG column, using the sqlldr API, if the size of the
                        column less than 4000 bytes, the interface may hang

                        When using transparent application failover with an application that
              958026    uses array fetching (such as SQL*PLUS), queries which fail over
                        sometimes return incorrect results or hang. Workaround - disable
                        array fetches.

                        Client side may hang due to mutex deadlock in the Net code layer.
              1043831   This shows up as a hang and is most likely to affect clients such as
                        Microsoft Transaction Server clients.

              1049660   SSL client may hang trying to connect to a GSI server

                        ORA-600 [17034] can occur while attempting to update a table with an
              1096056   invalid value (value too large for column) if the table has UPDATE
                        TRIGGER defined. The server process may spin (appearing to hang) on
                        disconnect.

                        In an OPS environment, if one instance issues the command ALTER
                        SYSTEM ARCHIVE LOG THREAD n CURRENT, with the thread n open, the
              1101568   instance which issued the command may hang. Workaround: Go to the
                        instance for thread N and issue the command: ALTER SYSTEM SWITH
                        LOGFILE;

                        Use of ALTER USER and TRUNCATE statements can cause a deadlock to
              1119894   occur against the ST ENQUEUE and DC_USERS row cache enqueue
                        resources.

                        A Pro/OCI client may hang or dump after a call to a PLSQL procedure
              1120120   which raises a user defined exception (RAISE_APPLICATION_ERROR). The
                        hang / dump occurs when the statement is re-executed.

              1134530   Parallel CTAS with a nested loops input may hang Workaround: Force a
                        hash join.

                        UTL_PG.NUMBER_TO_RAW_FORMAT behaves badly for a NULL input. Results
              1166931   can include inconsistent return results, dump or tight CPU spin.
                        Workaround: wrap any call to this function with a check to ensure the
                        input is not NULL

                        Foreground processes may hang attempting to connect to the LMD. If 2
                        or more processes try to connect to the DLM at the same time a hang
              1189628   may occur. This is a generic bug but the chance of it occuring is far
                        higher on certain platforms. Eg: Tru64 and HPUX 64 bit are prone to
                        this bug Solaris is not Workaround: Set _lm_direct_sends=lkmgr

                        PMON may be unable to clean up a dead process in an OPS environment
              1219869   if it dies at just the wrong time. This can leave the dead process
                        holding critical resources which cannot then be cleaned up resulting
                        in a possible hang scenario.

                        ORA-600[2103] can occur when using ALTER TABLESPACE READ ONLY and
              1223914   ALTER TABLESPACE READ WRITE in separate sessions concurrently against
                        different tablespaces. This shows up as a hang for 900 seconds before
                        the ORA-600 is signalled.

              1227790   OPS may hang if there is a communication error on the interconnect.

                        If timed_statistics is set to true, parallel queries and parallel
              1231642   CREATE TABLE AS SELECT could hang. Additionally Parallel CREATE TABLE
                        AS SELECT can produce a corrupt table. Workaround: Disable
                        TIMED_STATISTICS for parallel operations.

              1234770   AQ spins in first message if OCI_ATTR_CORRELATION is specified as a
                        OCI_DTYPE_AQDEQ_OPTIONS attribute.

              1239140   SELECT/DESCRIBE hang against a table with a TEXT index which is being
                        ANALYZED

              1261868   RMAN: If SKIP INACCESIBLE is specified for an ARCHIVELOG Backup RMAN
                        can sometimes hang.

              1278873   PCM lock request might hang in high concurrent situation.

              1293269   Client/Server can hang/spin (nttrd) over an SSL connection

                        Insert into a GLOBAL TEMPORARY TABLE with INDEX may hang/spin. This
              1304159   can sometimes be avoided by using "ON COMMIT DELETE ROWS" rather than
                        the default "ON COMMIT PRESERVE ROWS"

              1307660   A Hang / spin can occur using DML against a GLOBAL TEMPORARY TABLE
                        with an index

                        When a TABLE expression is used with predicates on the collection
              1325384   type, for certain large collections (>100K) the session may loop
                        continuously or sometimes crash.

                        Stale shadow lock at master resource caused can cause the system to
                        hang. Symptoms include waits for 'GLOBAL CACHE CR REQUEST' and
              1329607   messages of the form "convack->closed from
                        0:0x972b65ec(remote=0x96835c68,0x25b),0x20002" from the LMD trace
                        file, and LMD consuming much CPU.

                        Deadlock detection takes too long. The integrated DLM parameter
              1329898   _lm_dd_interval can only reduce deadlock detection time to one minute
                        at lowest, even set to 3 seconds.

                        High parse times are possible for queries with long AND and OR chains
              1337858   in their WHERE clause. Workaround: set the following init.ora
                        _OPTIM_ENHANCE_NNULL_DETECTION=false

Large file              Export may fail with EXP-2 if a FILESIZE parameter > 4GB is specified
issues (Eg:   1076041    in conjunction with multiple dump files. eg: exp system/manager
2GB)                    filesize=4100m file=\(a.dmp, b.dmp\) full=y will fail when the first
                        dump file reaches 4Gb in size.

              1229557   Export may write incorrect sizes for datafiles which are larger than
                        4GB into the export dump file.

                        For 64 bit architectures, the "large_pool_size" and
              1296369   "shared_pool_size" instance parameters are artificially limited to
                        4GB. With this fix this limitation is increased to 8GB on 64 bit
                        platforms.
MTS (Multi
Threaded      1007024   When using MTS w/outbound links, and 'alter system kill session', the
Server)                 shared server could core dump without a trace file.

              1092638   Using Direct Export with MTS may result in a dump (ORA-7445).
                        Workaround: Do not use MTS for direct export.

                        If a shared server dies during the establishment of a dblink, PMON
              1121157   may crash with an ora-7445 in kmcdlc() while trying to clean up the
                        Virtual Circuit.

              1166178   MTS servers may crash when using ADTs

              1220769   ALTER SYSTEM SET MTS_DISPATCHER does re-register all dispatchers with
                        the newly named listener address.

                        If an error occurs when opening an outbound circuit for an xa
              1247625   application, then it is possible for PMON to crash when trying to age
                        out a branch whose sestm has expired or which has been killed by
                        asynchronous xa_rollback.

                        If ora-4031 is encountered during session creation in MTS, then in
              1256011   8.0.x the shared server might die w/ ora-600[1113]. In 8.1.x an
                        ora-600[730] (memory leak) will be raised when the instance is shut
                        down.

                        In certain cases when database links are used, it is possible to get
              1262540   a core dump in lxdunld with a stack indicating network code called
                        from opirip from an MTS shared server. On NT this can result in an
                        instance crash.

                        When a) the client is much slower than the server and b) there is
              1309641   minimal activity on the dispatcher, there can be an intermittent 60
                        second delay in dispatcher processing.

Memory                  If a query on a GV$-view is interrupted by CTRL-C, ORA-600 [17182]
Corruption    914998    can occur during the following query or during logoff.

              1011232   <Parameter:STAR_TRANSFORMATION_ENABLED> can lead to memory corruption
                        / dumps

              1028288   For Sort merge join, queries involving views may core dump in
                        <Function:qkarwo> under specific circumstances.

                        This problem is introduced by the fix for bug:513430 A remote query
              1060189   would occasionally corrupt the session heap and result in ORA-600
                        [17182]. This is most likely to occur if the query expands (Eg: using
                        the USE_CONCAT hint) to several UNION-ALL'ed SELECT statements.

                        This problem was introduced in Oracle8i. Create index may cause a
              1120811   memory corruption (16 bytes zeroed out) It is unusual for this
                        corruption to cause an error to be signalled.

                        Access via a unique index on an IOT can cause ORA-600 17XXX errors
              1182496   due to SGA heap corruption. This can crash the database. (Note this
                        only occurs if there is a UNIQUE SECONDARY index on the IOT.

                        Workaround is to drop such indexes then bounce the DB)
              1185844   Scan of an IOT secondary index can corrupt memory and cause a dump.

                        Memory corruption under <Function:kxsfwa> can occur if
              1279398   CURSOR_SPACE_FOR_TIME is TRUE and a session performs an ALTER SESSION
                        SET NLS... command (or changes an NLS value via
                        dbms_session.set_nls).

Memory Leaks  553250    When the amount of memory to allocate for a bind buffer exceeds the
                        maximum allowed, ORA-00600 [17176] or [733] are raised.

                        Shadow processes may accumulate lots of process-private memory if
                        they parse SQL statements that have large in-lists or large
                        OR-chains. Queries with large in-lists could use excessive PGA memory
              762114    when parsed the CBO. This can be now be avoided by setting the
                        <Event:10191> (any level) so that we do not convert in-lists back to
                        OR-expanded form. Note that the event will NOT take effect if
                        <event:10157> is set or the AND_EQUALS hint is used. NB: Read
                        <Note:75713.1> before setting any event.

              918272    ORA-600 [729] space leak occurs for "Pvt. audit infor." memory
                        chunks.

              1019306   The ANALYZE TABLE command with the COMPUTE STATISTICS option uses a
                        lot of memory when analyzing a table with a lot of partitions.

              1022696   Java code may leak excessive memory (notably with ORDER BY)

                        Also see Bug:1040353 for part-2 of this fix When a function creates a
                        temporary LOB locator of session duration and returns, there are two
                        temporary LOB leaks. In the calling block, when the returned temp LOB
              1023988   is freed, there are still 2 LOBs left. Workaround: Always create
                        temporary LOBs in call duration in functions if the temp is to be
                        returned. If a session duration temp LOB is needed, you can copy the
                        returned temp LOB to one created with session duration.

              1032904   XA client memory leak if OBJECTS=T and threads terminate. Affects
                        Microsoft-MTS

                        See also Bug:1023988 which is part one of this bug. When a function
                        creates a temporary LOB locator of session duration and returns,
                        there are two temporary LOB leaks. In the calling block, when the
              1040353   returned temp LOB is freed, there are still 2 LOBs left. Workaround:
                        Always create temporary LOBs in call duration in functions if the
                        temp is to be returned. If a session duration temp LOB is needed, you
                        can copy the returned temp LOB to one created with session duration.

                        EXPORT of DB on different platform leaks memory in the Export
              1058861   process. This memory leak can cause the export to fail with errors of
                        the form: "kgefec: fatal error 0"

                        This problem was introduced in 8.1.5. Adding datafiles to a database
                        leaks a file descriptor which can cause maximum-open-file limits at
              1068882   OS level to be reached far quicker than then should. This can result
                        in ORA-19502 and ORA-27077 errors. Workaround: Shutdown and restart
                        to add more files.

              1079796   Excessive process memory may be consumed for some operations,
                        particularily on 64 bit architectures.

              1086146   SNP memory leak. (Fixed in 8.1.7 under <Bug:1288817>) Workaround:
                        Periodically stop and restart the SNP processes.

              1092621   ALTER TABLE DROP PARTITION may consume excessive shared_pool resource
                        and also ran at a sub-optimal speed.

                        Too much memory is consumed during the parse and type checking stages
              1105054   of a SQL statement when the statement was issued against a
                        partitioned table with local indexes.

                        During database shutdown, ORA-600[723] may be reported for memory
                        chunks of type "LGWR PIC ins ar" and similar. Workaround: Set
              1125724   <Event:10262> to a value to avoid the problem The level should be set
                        above the number of leaked bytes. Important: Always read
                        <Note:75713.1> before setting any event.

                        This bug can occur when running queries against a transparent gateway
                        version 8 and above (these gateways use the heterogeneous services
              1163677   module of the Oracle database server - the earlier ones do not). What
                        will happen is that when the user-session contains a large number of
                        queries that reference data dictionary tables at the non-Oracle
                        system, the error 28506 will be issued.

              1247197   Client memory leak when repeatedly executing SELECT on LOBs

              1251390   Client memory leak handling LOBs

                        Repeated calls to setTransactionIsolation with an invalid value could
                        result in ORA-1000. Eg:
              1258916   conn.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
                        is invalid for Oracle but will leak a cursor as well as raising an
                        exception.

              1288817   Snapshot process performing AQ propogation grows in size

              1294960   Client memory leak may occur running dynamic Method 4 application in
                        a loop.

              1312984   OCIEnvCreate / OCIHandleFree in a loop leak memory (in the client)

                        When using Migration Utility, and the mutliplier option is not
Migrate       541021    defined the Migration Utility sometimes issues ORA-1632 max # extents
                        (1) reached in index on MIGRATE.I_FILE#_BLOCK#.

              717372    ORA-600 [KCBRLS_1] is possible on a read-only tablespace migrated
                        from Oracle7

              956373    Migrating 64 bit database to 32 bit database with compatibilty set to
                        8.1 leads to server crash with ORA-7445 .

                        This bug causes the migration utility to produce an error while the
                        convert file is being created. The error is "datafile number being
              1049367   processed is incorrect during creating convert file". If this error
                        occurs there was no way to use the migration utility to migrate the
                        database from 7 to 8 without the fix.

              1154181   DBA_TAB_PRIVS contains duplicate rows after a migration.

                        ALTER TABLESPACE ADD DATAFILE can fail with ORA-600 [5106] when
              1301273   adding more than one datafile in a single operation. There is no
                        corruption involved, just this error. This is most likely to occur on
                        a database which has been migrated from Oracle7 to Oracle8.

NLS (National           When using single quotes with a hint '--+' on multibyteDB, SELECT
Language      943057    statements can hang Workarounds: - Use '/*+ */' instead of '--+' in
Support)               the hint. - Do not quote the hint

              964100    PROCOB generates precompiler error for 73rd column, when multi-byte
                        characters are used in source lines.

                        On some multi-byte character set environment, for example JA16SJIS,
              988057    the query result which contains LIKE operator with ESCAPE keyword may
                        wrong.

                        This will occur only in a database where the character set if
              1000405   multibyte. When killing a session in the SNP process, the SNP process
                        may coredump in <Function:kgespf>

                        A PL/SQL procedure run in the server which alters an NLS parameter
              1070347   via dbms_session.set_nls() does not demonstrate the altered behavior.
                        Only when the procedure completes, and another procedure is executed,
                        does the altered behavior start to occur.

              1079156   This problem is introduced by the fix for bug:893259 CTAS through the
                        database link might fail with ORA-1401 in multi-byte environment.

                        Import can fail with ORA-959 "tablespace doesn't exist" with NLS_LANG
              1289441   set to certain values if tables contain column names ending
                        _TABLESPACE.

                        A describe of a cursor obtained as a REFCURSOR by executing a
                        definer's rights function could fail with ORA-942 or other
OCI           1142096+  permissions errors. This is a regression introduced in 8.1.5 which
                        may cause upgrade problems for applications using REFCURSORS
                        extensively.

                        Implicit data conversion from null terminated string host variable to
              770841    date, results in ORA-1861 'literal does not match format string' if
                        the table is locked.

              857811    The OCI demo OCIAQDEMO00 uses the OS function sleep() which is not an
                        NT function.

                        When the user sigaction handler for SIGINT , registered with siginfo
              869244    flag, access the second input argument, the application may core
                        dump.

              882995    SQL*Loader hangs while loading a NULL value (as in "") into a table.

              923663    With the introduction of fix#735563, ORA-3106 is obtained for a break
                        from a piecewise fetch instead of ORA-1013.

                        A direct path API program built under 8.1.5 and run using 8.1.6
                        shared libraries may dump if using DATE data due to new
              933380    un-initialized attributes introduced in 8.1.6. Workaround: client
                        program MUST CALL call OCIAttrSet() with OCI_ATTR_DATEFORMAT
                        attribute FOR ALL DATE COLUMNS.

              944913    Exception in a Multithreaded Application .

              952323    While loading a LONG column, using the sqlldr API, if the size of the
                        column less than 4000 bytes, the interface may hang

                        ORA-3106 may occur on re-execute (using OCIStmtExecute) when the
                        re-bind size of a select list item exceeds the previous bind size.
              1056740   Eg: select :b from dual; Bind :b as string of length 25 characters;
                        Execute. Bind :b as string of length 100 characters; Execute but
                        OCI_ATTR_DATA_SIZE has not been increased.

                        8.1 clients executing DML repeatedly receive far more bytes of data
              1058446   from the server than pre-8.1 clients, causing higher CPU usage in the
                        client. This fix reduces the amount of network data for common DML
                        operations. Note: This is a client side fix.

              1063104   All valid cursors are unusable in all previous sessions after ending
                        a new session.

              1087876   A spurious ORA-24347 may occur in OCI for statements not using
                        aggregate functions.

                        ORA-24777 using DBLINKs in XA or migratable OCI transactions without
              1103036   MTS. Note: XA sessions MUST be migratable and so must use MTS for
                        DBLINKS. However, OCI initiated transactions may state
                        OCI_TRANS_NOMIGRATE and thus should be allowed to open a DBLINK.

                        ORA-1801 may occur fetching a DATE column into a large buffer in
              1112313   Pro/OCI. Eg: If there is a LONG column prior to the DATE column being
                        selected then it is possible to get ORA-1801 on the date column if
                        the LONG column has a defined maximum length of 1Mb.

                        A Pro/OCI client may hang or dump after a call to a PLSQL procedure
              1120120   which raises a user defined exception (RAISE_APPLICATION_ERROR). The
                        hang / dump occurs when the statement is re-executed.

                        This problem was introduced in Oracle 8.1.5 ORA-24347 may be
              1178918   incorrectly raised during the execute of a statement from Pro* / OCI
                        if the statement handle previously had a null-query executed in it.

                        Compiling an application including ociap.h or ocikp.h may fail with a
              1230846   compiler error on multibyte platforms due to an 8bit character (0xa0)
                        in the source file.

                        OCISubscriptionRegister() cannot be used multiple times for the same
              1237107   event - only the last registered callback is fired. With this fix all
                        registered subscription handles are called.

                        Pro / OCI client side performance can be slower than earlier releases
                        due to un-necessary lookup of ORA-1403 errors at the end of a series
              1239470   of fetches. The actual impact depends on the number of ORA-1403
                        errors received. This fix reduces the number of times we look up the
                        error details.

              1263903   ORA-1435 can be raised by OCISubscriptionRegister as the username is
                        not converted to language independent format before being used.

              1312984   OCIEnvCreate / OCIHandleFree in a loop leak memory (in the client)

Optimizer     1006563+  The optimizer does not pick a domain index for a query when the table
                        is referenced via a synonym.uery.

              870413    Sorts do not use an index unless hinted if columns could be NULL,
                        even though the predicates ensured they were NOT NULL.

                        For predicates involving bind variables with < . > , <=, >= and LIKE
                        operations CBO uses a default selectivity value. However, in some
                        cases this could make the predicate seem more selective than an
              923793    equality (= :bind). This fix ensures that the selectivity is never
                        less than an equality based on the table statistics. This fix is
                        DISABLED by default in 8.1.6.2 and 8.0.6.2 To enable the new
                        behaviour then: 8.1.6.2 Set Event:10133 to level 1 8.0.6.2 Set
                        Event:10125 to level 1 See <Note:75713.1> before setting any event.

                        When a view is created on an object table which references objects
              929403    from another object table, the explain plan will show that a full
                        table scan is used when querying the view, while an index scan is
                        used when selecting from the base table.

                        Expensive plan may be generated for query with like predicate with
              955927    escape clause. Eg: LIKE '\_BBB%' ESCAPE '\' costed as if '_' was a
                        wildcard.

                        If a table T has a domain index on column c which supports a
              983811    user-defined operator op(), then the optimizer does not pick the
                        index with a key which looks like the following: "op(c, f('abc')) =
                        1" where f is a function, even though it is legal to use the index.

                        If automatic replacement of literals with bind variables is enabled
                        by using cursor_sharing = FORCE (either in the init.ora or by issuing
              984132    an alter system or alter session), then statements with literals in a
                        cursor expression can core dump. There is no workaround for this
                        problem, other than disabling replacement of literals. Eg: "select
                        cursor(select 'a' from dual) from po" may dump

                        ANALYZE ... ESTIMATE would in many circumstances choose a sample to
              1000432   analyse much smaller than that requested, resulting in incorrect
                        sample results.

                        ORA-600 [16550] / ORA-600 [QERFXARRAYMAXSIZE: NOT A FIXED TABLE]
                        [SYS_ALIAS_0000] occurs with stored outlines enabled when a query has
              1001840   the same fixed table appearing more than once. Eg: alter session set
                        CREATE_STORED_OUTLINES=TRUE; Select 'X' From v$nls_parameters a,
                        v$nls_parameters b;

                        @This change is present for applications 11i CBO limits the number of
                        join orders that it considers based on
                        <parameter:OPTIMIZER_SEARCH_LIMIT> and so may not find the "BEST"
              1002975   plan. This fix changes the algorithm used to choose the initial join
                        orders in an attempt to improve the chance of finding the best plan.
                        To enable the fix then 8.1.7: Set _New_Initial_Join_Orders=true
                        <Parameter:New_initial_join_orders> 8.1.6.1: Set <EVENT:10131> to
                        level 1 or higher

                        CBO uses the wrong cardinality for queries which are known to access
              1039347   a single partition but where that partition is not known until
                        execution time. Eg: Where partitioned_date= some_function( SYSDATE )

                        A correlated column on a NOT IN list and a HASH or MERGE anti join
                        may result in ORA-7445 [KKOAJT]. Eg: select b.BCD from TBL_1 b,TBL_2
              1045707   a where not exists ( select * from TBL_2 a where b.CDNO not in
                        (select a.CDNO from TBL_2 a)); Note that b.CDNO is correlated .
                        Workaround: Set <Parameter:ALWAYS_ANTI_JOIN> to NESTED_LOOPS

                        NOT IN optimization is not enabled for view columns. Eg: select *
              1070764   from xx where col1 not in (select c from vw) Workaround: Manually as
                        IS NOT NULL predicates in the subquery. Eg: select * from xx where
                        col1 not in (select c from vw where c is not null)

              1086489   When "_complex_view_merging"=true and a functional indexes is on a
                        table, subqueries can cause crashes.

                        Query with "LEADING" hint and "ORDERED" hint may DUMP in kkoiqb().
              1102605   Eg: select /*+ LEADING (e) ORDERED */
                        e.empno,e.ename,e.sal,e.deptno,d.dname from emp e, dept d where
                        e.deptno=d.deptno order by e.ename

              1108002   ORA-600 [25012] is signaled when DBMS_STATS tries to gather
                        statistics for a GLOBAL TEMPORARY table.

                        When a query contains lots of tables in the FROM clause the choice of
              1111400   join orders does not properly take into account single row tables in
                        the query, potentially causing poor choice of initial join orders.

                        Under FIRST_ROWS optimizer mode, sometimes the correct domain index
              1113673   (which could eliminate an ORDER BY sort) is not picked by the
                        optimizer.

              1114064   Statistics for composite partitions do not appear in INDEX_STATS.

                        This fix allows CBO to use selectivity of individual columns in an
                        outer join where one of the columns in the join has a complex
              1157199   expression rather than using default selectivity. To enable this fix:
                        8.1.7: ALTER SESSION SET "_ONESIDE_COLSTAT_FOR_EQUIJOINS"=TRUE;
                        8.1.6.1: Set <Event:10129> to level 1

                        CBO does not favour UNIQUE indexes on cost-tie With this fix CBO will
              1162839   favour the UNIQUE index if there are equal costs computed between
                        UNIQUE and NON-UNIQUE index range scan

              1168533   OR-expansion of a query involving a view with a PLSQL function may
                        dump core.

                        dbms_stats.gather_schema_stats() may skip a table and not recalculate
              1192012   the table's statistics when the 'GATHER STALE' and 'GATHER EMPTY'
                        options are used.

                        Predicates of the form "e.empno=e.empno" which eliminate no rows from
              1193115   a query have the wrong selectivity and may hence affect which
                        execution plan is chosen. This only occurs where for COLUMN=COLUMN
                        predicates - constant equalities are handled correctly.

              1215372   With complex view merging turned on, queries containing HAVING
                        COUNT(column) may dump if "column" has a NOT NULL constraint on it.

                        There are 2 parts to this bug: INSERT INTO <TABLE> SELECT ... FROM
                        <VIEW> should use CBO if the OPTIMIZER_GOAL is CHOOSE and tables
                        inside <VIEW> have statistics on them or if <VIEW> has a hint in it.
              1225256   This bug causes RBO to be used instead. In Oracle7 hints in the VIEWs
                        are not noticed but statistics do cause CBO In Oracle8 neither hints
                        nor statistics cause CBO to be used. The only workarounds are: 1. To
                        use ALL_ROWS or FIRST_ROWS optimizer goals or 2. Explicitly HINT the
                        query or 3. Select direct from the table

              1245019   Internal errors such as ORA-600 [19004] may occur from queries after
                        statistics have been loaded using DBMS_STATS from a user stats table.

                        A select with literals as well as MIN or MAX is not able to use the
              1251887   INDEX MIN/MAX access path. This can result in slower performance than
                        is possible. Eg: SELECT 'literal', MAX(COL) FROM TABLE does not use
                        the INDEX MAX/MIN access path.

                        If you have a predicate like: op1(c1, op2(c2, 1)) = 2 and there is a
                        domain index on the column c1 supporting the operator op1, then the
              1273042   optimizer sometimes chooses the domain index with this predicate as
                        the key even if column c2 belongs to the same table as c1 or to a
                        table that hasn't been joined yet.

              1314506   Parse error can be returned if COMPLEX_VIEW_MERGING=TRUE and
                        STAR_TRANSFORMATION_ENABLED=TRUE

                        ORA-907 ( Missing right parenthesis ) is signalled while running
              1326515   DBMS_STATS.GATHER_TABLE_STATS, if any of the column names in the
                        table has spaces e.g. "Column 1"

                        When compiling a query joining to a partitioned table on which
              1331694   partition pruning (elimination) is not possible, Oracle may fail with
                        ORA-7445 [MSQOR()]. The workaround is to set the following parameter
                        to FALSE: _SUBQUERY_PRUNING_ENABLED.

                        High parse times are possible for queries with long AND and OR chains
              1337858   in their WHERE clause. Workaround: set the following init.ora
                        _OPTIM_ENHANCE_NNULL_DETECTION=false

Oracle8                 Improved the performance of LOB export and import by virtue of
Datatypes     731848    reading and writing using the LOB chunksize.

              780572    Usage of objects in XA applications can generate random and often
                        non-existent runtime errors.

              848744    CREATE TYPE statements ending with semicolon(;) and slash (/) as
                        terminating characters encountered ORA-911 invalid character.

                        When a view is created on an object table which references objects
              929403    from another object table, the explain plan will show that a full
                        table scan is used when querying the view, while an index scan is
                        used when selecting from the base table.

                        When using SQL*Loader in conventional mode to load tables containing
              933703    LOB columns, the server sometimes returns the error ORA-22990: LOB
                        locators cannot span transactions

              947083    EXP-56 / ORA-1007 may occur on export of a NESTED TABLE / OBJECT
                        TABLE.

                        Secondary index-based scan for index-organized tables uses a range
              980209    scan followed by range scan instead of range scan followed by unique
                        scan.

                        Also see Bug:1040353 for part-2 of this fix When a function creates a
                        temporary LOB locator of session duration and returns, there are two
                        temporary LOB leaks. In the calling block, when the returned temp LOB
              1023988   is freed, there are still 2 LOBs left. Workaround: Always create
                        temporary LOBs in call duration in functions if the temp is to be
                        returned. If a session duration temp LOB is needed, you can copy the
                        returned temp LOB to one created with session duration.

                        See also Bug:1023988 which is part one of this bug. When a function
                        creates a temporary LOB locator of session duration and returns,
                        there are two temporary LOB leaks. In the calling block, when the
              1040353   returned temp LOB is freed, there are still 2 LOBs left. Workaround:
                        Always create temporary LOBs in call duration in functions if the
                        temp is to be returned. If a session duration temp LOB is needed, you
                        can copy the returned temp LOB to one created with session duration.

                        When an ADT type (having a nested table type embedded inside it) is
              1082630   used as column of a base table, it is not possible to use fine
                        grained access control on the base table.

                        PL/SQL compiler did not allow inserting into a clob or blob column
              1087888   with character data through a subquery, or updating a set of columns
                        containing one or more clob or blob columns.

                        This problem was introduced in 8.1.5 The combination the following 3
                        things: -- inserting into a view. -- the insert statement returning a
                        "clob" col. -- modifying in a trigger a column not part of the
              1116304   original insert (e.g., doc_size in the test case below. causes
                        ORA-00932 error. When using INSERT..RETURNING into a view with lob
                        columns, the server would in some cases return an ORA-932
                        (inconsistent datatypes error)

                        Eg: select * from iot_table partition(xxx) where global_index_col<100
              1140587   may return data from more than the specified partition giving
                        incorrect query results.

              1166178   MTS servers may crash when using ADTs

              1185844   Scan of an IOT secondary index can corrupt memory and cause a dump.

                        The exception table used for an IOT stores the primary key column
                        values from the table. The recursive SQL string used for this
              1190845   exception table is wrong when the IOT has one or more hidden columns
                        (due to Functional indexes or Nested table). This causes ORA-604 /
                        ORA-3001 when attempting to enable a foreign key constraint on the
                        IOT.

              1191683   ORA-22922 if multiple temporary LOBS returned from a query

                        Passing a very large object type or collection type value from a
              1193075   PL/SQL program to a java method (JSP) can lead to ORA-22813 errors
                        and internal errors/dumps in some cases.

              1222619   When using DBMS_LOB.APPEND to write CLOB data to a temporary CLOB it
                        is possible for the write to fail with ORA-00600 [kdlseek-kgbtnscb].

              1239889   ORA-3113 and error 21779 may occur trying to pass a temporary LOB
                        back from an extproc callout.

                        When a CAST(MULTISET()) query is used in a INSERT statement or inside
              1242873   a view, and if the CAST query block has ORDER, GROUP BY, aggregates,
                        DISTINCT etc the server may crash or raise an ORA-932 error.

              1245638   EXPLAIN PLANs of SQL statements with bind variables of
                        object/collection types sometimes produce ORA-932 errors.

                        DML statements against object tables with common subexpressions and
              1248170   triggers (with OUT-binds) defined on the target table may produce
                        incorrect results

              1261753   When a temp lob is selected from a function into a local LOB variable
                        in a query executed in a plsql block an ORA-22922 is raised.

                        Common subexpressions are not used for functions in a subquery. Eg:
                        Statements of the form: "update point_table x set x.g2 = (select /*+
              1270820   NO_MERGE +*/ Identity(x.g1) from dual);" where G2 is an object type
                        will execute the Identify() function once for each attribute. Note
                        the function MUST be created with the DETERMINISTIC pragma.

              1294998   Creation of an IOT where all columns in the table comprised the
                        mandatory primary key may fail with ORA-1429

                        If foo() is a plsql function returning a temp lob then SELECTing
              1305188   foo() in a query with an 'order by' clause will raise an ORA-22922
                        error.

                        When more than one user session issues an identical statement
              1306577   involving either object types or collection types, in some cases it
                        works in one session and raises an ORA-904 in the other - even though
                        both have identical privileges.

                        When a TABLE expression is used with predicates on the collection
              1325384   type, for certain large collections (>100K) the session may loop
                        continuously or sometimes crash.

                        When updating a scalar attribute of an object type column, the server
              1360802   occasionally returns a spurious ORA-2309 (atomic null violation)
                        error

Parallel                A class of SQL statements fails with an ORA-600 [15804] when executed
Query (PQO)   532570    in parallel due to incorrectly sharing Data Flow Operator SQL.
                        Workaround is to Flush the Shared Pool

                        If instance A is recovering a dead thread from instance B, using
              752740    parallel transaction receovery, and Instance A isssues a shutdown,
                        ORA-00600 [15753] can be signalled in one of the PQ Slaves.

                        select distinct ... with group by may return non-distinct values for
              896863    a distinct column if run in parallel and the GROUP BY list has keys
                        other than DISTINCT keys

                        While running your instance with a value more than 65535 for
              912711    PARALLEL_EXECUTION_MESSAGE_SIZE, parallel execution fails with
                        ORA-12801 or hangs.

                        This problem was introduced in 8.1.5 Parallel CTAS with UNION ALL
                        query branches may core dump (in <Function:kkfdmrk>) if one of the
              936214    branches cannot be parallelized. Workaround: The problem only occurs
                        if the branch which cannot be parallelized is not the first in the
                        UNION ALL list. Hence a workaround is to re-order the UNION ALL
                        branches so that non-parallelizable branches all occur first.

                        This problem was introduced in 8.1.5 Parallel select with group by,
                        with trunc() or round() in group by expression may result in a
                        parallel slave process returning 'ora-979 not a GROUP BY expresson'
                        followed by ora-12801. For this to occur the TRUNC or ROUND must have
              953471    2 arguments. Workaround: A possible way to avoid this problem is to
                        use TO_DATE/TO_CHAR operators to mimick the TRUNC / ROUND behaviour.
                        Eg: TRUNC(col,'YYYY') can be replaced by the (obscure) construct
                        TO_DATE(decode(TO_CHAR(<COLUMN>,'YYYY')||'0101', '0101',null,
                        TO_CHAR(<COLUMN>,'YYYY')||'0101'),'YYYYMMDD')

              956131    ORA-600[15819] can be signalled when rebuilding a bitmap index in
                        parallel for larger block sizes ( > 4k )

                        ORA-00600 [kkfdjoi] is raised when parsing certain parallelisable
              992350    statements especially when PARALLEL_BROADCAST_ENABLED=TRUE is in
                        effect. . Workaround is to set PARALLEL_BROADCAST_ENABLED=FALSE

                        This problem was introduced in 8.1.5. Select with group-by may result
              998575    in ORA-600[XTYCSR3] if the select list involves aggregation functions
                        and group by list involves constants and the query is parallelized.

                        If you have a group-by clause that matches a join column, then the
              1015291   optimizer may pick a sort-merge join when the join is in parallel
                        even though hash join is a better choice.

                        Parallel Queries may error with ORA-12801 / ORA-960 for queries of
                        the form: SELECT DISTINCT nr alias_a, nr alias_b FROM test ORDER BY
              1055497   alias_b; where a column is referenced more than once in the select
                        list, and one of the aliases is used in the ORDER BY clause.
                        Workaround: Apply a function to one of the duplicate columns to make
                        them different. Eg: Use "nr+0 alias_a" in the example.

                        This problem was introduced in 8.1.5 Selects using aggregates of
                        aggregates from an inline view may raise ORA-600 [kqassf2.3] when
              1064998   executed in parallel. Eg: select sum(total_1) total_1, sum(total_2)
                        total_2 from (select sum(empno) total_1, sum(empno) total_2 from emp
                        group by deptno);

                        Parallel CTAS may produce an incorrect result set in the target table
              1082299   if the driving select has columns of type CHAR used both in the
                        select list and in the predicates.

              1110876   Parallel query slave accessing bitmap index sometimes dies with
                        internal error ORA-600 [20040].

              1134530   Parallel CTAS with a nested loops input may hang Workaround: Force a
                        hash join.

              1138239   Direct reads (such as used when performing a parallel select) on a
                        plugged-in tablespace may cause ORA-600 [25012].

              1175373   Wrong results possible from UNION ALL of partitioned tables if some
                        of them have a degree of parallelism and some are NOPARALLEL.

                        This problem was introduced in 8.1.5 Queries that perform count(*)
              1195108   with group by on columns that have a bitmap index may error with
                        ORA-600[9999]

              1217243   Parallel queries can dump with ORA-600 [15805][1]

                        Select from a PARTITIONED TABLE in a READ ONLY DATABASE may result in
              1220997   ORA-7445 core dump if the query gets parallelized [with stack:
                        kcrfss(), kcrflog(), kxfrFlushObjs(), kxfralo(), qerpxStart(),
                        qersoStart(), selexe(),opiexe().. ]

                        If timed_statistics is set to true, parallel queries and parallel
              1231642   CREATE TABLE AS SELECT could hang. Additionally Parallel CREATE TABLE
                        AS SELECT can produce a corrupt table. Workaround: Disable
                        TIMED_STATISTICS for parallel operations.

              1253281   ORA-600 [kkfdjoi4] may be raised for some statements that involve a
                        join when executed in parallel.

                        This problem was introduced in 8.1.5 Parallel query may return the
              1253654   wrong results if a GROUP BY clause is used with a function rather
                        than a column. The wrong results may also occur if a parallel plan is
                        run serially.

              1274666   ORA-600 [15793] may be reported when an internode parallel query is
                        interrupted This may cause the instance to crash.

                        Some classes of SQL using the UNION operator can fail with an ora-600
              1289533   [kkfdjoi4] when executed in parallel. Workaround: Run serially, or
                        try recoding to use a UNION ALL construct

                        Some SQL statements that execute against partitioned objects may fail
              1290569   with ora-600 [msqopnws_sys] if executed in parallel. Workaround:
                        Execute serially Where possible try using UNION ALL in place of UNION
                        - this can help for certain circumstances.

              1296682   Parallel DML (PDML) runs serial from DBMS_SQL / PLSQL EXECUTE

                        This problem was introduced in 8.1.5 A Star query on partititioned
              1312233   tables with parallel degree >1 may result in internal errors
                        ORA-600[25012] or ORA-600[KCBCUR_1) Workaround: Set
                        <parameter:star_transformation_enabled>=false

              1322914   This problem was introduced in 8.1.5 PQ may return ora-979 when slave
                        sql generates bind variables.

Parallel                If instance A is recovering a dead thread from instance B, using
Server        752740    parallel transaction receovery, and Instance A isssues a shutdown,
                        ORA-00600 [15753] can be signalled in one of the PQ Slaves.

              906374    ora-7445 may occurwhen gv$views are joined with predicates containing
                        instance id.

                        This fix improves OPS resilience. If there is a protocol violation
              926536    the Oracle shadow process aborts. If the shadow is LMD this could
                        bring the instance down. LMD is now more resilient to protocol
                        violations.

                        When using transparent application failover with an application that
              958026    uses array fetching (such as SQL*PLUS), queries which fail over
                        sometimes return incorrect results or hang. Workaround - disable
                        array fetches.

              978970    A core dump occurred while freeing environment handle using
                        OCIHandleFree() in an OPS, Failover configuration.

              1000209   In parallel server waits for ROW CACHE LOCK could wait needlessly for
                        60 seconds before timing out.

                        Shutdown of an OPS instance can signal ORA-600 [2658] or ORA-600
              1042600   [1621] if the CKPT process of the instance being shutdown receives a
                        cross instance call at the time of the shutdown.

              1061775   An assert ORA-00600 [kclcget_1] might be signalled by LMD process
                        under certain heavy load situations and cause an instance to crash.

              1078972   The TNS_ADMIN environment variable is not passed to instances as they
                        are being started by the OPSCTL command in an OPS environment.

              1088158   The fairness down convert does not work if the exclusive holder for
                        the lock is not on the resource master node.

                        In an OPS environment, if one instance issues the command ALTER
                        SYSTEM ARCHIVE LOG THREAD n CURRENT, with the thread n open, the
              1101568   instance which issued the command may hang. Workaround: Go to the
                        instance for thread N and issue the command: ALTER SYSTEM SWITH
                        LOGFILE;

                        Some platforms close TCP end points if there has been no activity for
                        a very long time. Keepalive can be used to prevent this default
              1105185   action by ensuring a connection is still valid. This fix causes TCP
                        DLM interconnect to open connections with KeepAlive enabled to
                        prevent unwanted timeouts. The implementation of this fix may vary
                        between platforms.

              1107871   An assert ORA-00600 [KJUOCL10] might be signalled by a process and
                        cause the process to die when under heavy load in an OPS environment.

              1123988   Dead process cleanup can cause LMON to die with ORA-600[29703]
                        causing the instance to crash.

              1129004   LMON intermittently dies with ORA-600[KJPRSEM:INUSE&!C] during domain
                        cleanup.

              1155042   When using Transparent application failover in the type=select mode,
                        the application may leak memory

              1155977   An assert ORA-00600 [KJDDOPR:PP] might be hit by the LMD process
                        during deadlock detection causing the instance to crash.

              1187868   ORA-54 is more likely to occur in Oracle8 OPS (than in Oracle7) for
                        NOWAIT operations. (Eg: select .. for update nowait)

                        Foreground processes may hang attempting to connect to the LMD. If 2
                        or more processes try to connect to the DLM at the same time a hang
              1189628   may occur. This is a generic bug but the chance of it occuring is far
                        higher on certain platforms. Eg: Tru64 and HPUX 64 bit are prone to
                        this bug Solaris is not Workaround: Set _lm_direct_sends=lkmgr

                        PMON may be unable to clean up a dead process in an OPS environment
              1219869   if it dies at just the wrong time. This can leave the dead process
                        holding critical resources which cannot then be cleaned up resulting
                        in a possible hang scenario.

              1223971   When using RMANs DUPLICATE command in an OPS database with 2 or more
                        instances an ORA-2112 error is signalled by RMAN

              1227790   OPS may hang if there is a communication error on the interconnect.

              1243387   Out of shared pool memory might cause an ORA-600[KSIPGET_3] on OPS

              1278873   PCM lock request might hang in high concurrent situation.

              1314812   This problem was introduced in 8.1.5 "kjcvcrb: retry kjcvmsc" and
                        performance problems on OPS with the 8i CR server.

              1318308   This problem was introduced in 8.1.5 Referencing items in a readonly
                        tablespace might cause ORA-600 [2251] in an OPS environment.

              1320874   This problem was introduced in 8.1.5 OPS in CR-server mode might
                        cause ORA-600[KCLBCPY2-1].

                        Stale shadow lock at master resource caused can cause the system to
                        hang. Symptoms include waits for 'GLOBAL CACHE CR REQUEST' and
              1329607   messages of the form "convack->closed from
                        0:0x972b65ec(remote=0x96835c68,0x25b),0x20002" from the LMD trace
                        file, and LMD consuming much CPU.

                        Deadlock detection takes too long. The integrated DLM parameter
              1329898   _lm_dd_interval can only reduce deadlock detection time to one minute
                        at lowest, even set to 3 seconds.

Partition               A query against union-all view with a correlated subquery in the
Views (PV)    910876    where clause may return an incorrect result if the subquery is NL
                        joined and the subquery predicate is used for the index key.

              1280318   Partition view filter does not work if a the query uses bind variable
                        against for the partition key value.

                        User or Table level export may raise an EXP-3 error when exporting a
                        partitioned table if a partition of that table has been EXCHANGED
                        with another users TABLE. Attempts to extend the partition once the
Partitioned             original owner has been dropped can also result in ORA-1950 errors.
Tables        655950    Workarounds: Export as SYSTEM. Only EXCHANGE within the current
                        schema. Notes: The fix ensures that the segment owner is changed on
                        EXCHANGE As such existing EXCHANGED partitions with this problem are
                        corrupt and the fix will not address these.

                        ORA-14101 errors may occur / not when a synonym exists on a
                        partitioned table and partition extended naming is being used. NB:
              898867    This bug only applies when explicitly using: <tablename> partition (
                        <partname> ) and <tablename> is a synonym for the user using this
                        clause.

                        Direct path loader incorrectly reports that rows have been
              911777    successfully loaded when loading was actually aborted due to a
                        PARTITION being readonly.

                        ora-1037 can occur with a large number of bitmap indexes and
              953424    partitions on a table. For this problem to occur then: Number of
                        bitmap indexes * Number of partitions must be GREATER THAN 8000

                        Select from partitioned table with some of the partitions empty may
                        raise ORA-7445 and dump in <Functio:KKEHBS> when column histograms
              962964    are present. This bug was introduced by the enhancement in
                        <Bug:707884> Hence a workaround is to set <Event:10158> at level 1 in
                        Oracle 8.0 or set <Event:10169> at level 1 in Oracle 8.1

                        CBO may estimate the cost for local index access wrongly if a local
              1006349   index column predicate uses bind variables and the first partition is
                        not representative of all partitions (eg: if it is empty). This can
                        lead to sub-optimal plan.

                        Query which has inlist predicate and range predicate on partition
                        columns may result in an incorrect result Eg: A table with "Partition
              1024478   by range (dt1,dt2)" can return wrong results for a query of the form:
                        select * from dt where dt1 in (1,2) and dt2 >= 4 and dt2 <= 5 order
                        by 1,2;

                        CBO uses the wrong cardinality for queries which are known to access
              1039347   a single partition but where that partition is not known until
                        execution time. Eg: Where partitioned_date= some_function( SYSDATE )

                        Export of a partitioned table having multiple index constraints can
                        generate incorrect syntax in the export dump file. This can lead to a
              1067602   subsequent failure upon import. Workaround: It is possible to work
                        around this problem by pre-creating the table and associated
                        constraints and use IGNORE=Y

              1092621   ALTER TABLE DROP PARTITION may consume excessive shared_pool resource
                        and also ran at a sub-optimal speed.

                        A select from a range partitioned table may error with ORA-600
              1095949   [KKPAMFLIST] if there is no partition with MAXVALUE specified.
                        Workaround: Ensure there is a partition covering up to MAXVALUE

                        A query on a partitioned table may fail with ORA-600 [12337] if when
                        there is a partition key inlist and the partition key is used in
              1096441   other predicates. eg: Where pk in (1,2) and pk=ot.key Workaround: Set
                        <Event:10157> to disable the Inlist iterator (see <Note:75713.1>
                        before setting any event)

                        Too much memory is consumed during the parse and type checking stages
              1105054   of a SQL statement when the statement was issued against a
                        partitioned table with local indexes.

              1114064   Statistics for composite partitions do not appear in INDEX_STATS.

                        Using SQL_TRACE against sessions accessing partitioned tables could
              1140381   dump core. This problem was introduced in 8.1.6 with the fix to
                        include partition pruning information in SQL_TRACE trace files
                        (Bug:714369)

                        Eg: select * from iot_table partition(xxx) where global_index_col<100
              1140587   may return data from more than the specified partition giving
                        incorrect query results.

                        A query on a partition table with a group by and an order by
              1147272   descending clause returned rows in the wrong order when the group by
                        and order by columns are the same as the partition key

                        A direct load into an empty partition which has two or more
                        subpartitions will corrupt the local indexes in all other partitions
              1171627   are truncated. Workaround: a. Insert at least one row into the
                        partition you wish to load into or b. Re create all local indexes
                        after the load

              1175373   Wrong results possible from UNION ALL of partitioned tables if some
                        of them have a degree of parallelism and some are NOPARALLEL.

                        Select from a PARTITIONED TABLE in a READ ONLY DATABASE may result in
              1220997   ORA-7445 core dump if the query gets parallelized [with stack:
                        kcrfss(), kcrflog(), kxfrFlushObjs(), kxfralo(), qerpxStart(),
                        qersoStart(), selexe(),opiexe().. ]

                        Analyze partition(ESTIMATE) produces inaccurate result of num_rows
              1251013   for correcponding index_partition. Workaround: Analyze index
                        partition separately

                        Some SQL statements that execute against partitioned objects may fail
              1290569   with ora-600 [msqopnws_sys] if executed in parallel. Workaround:
                        Execute serially Where possible try using UNION ALL in place of UNION
                        - this can help for certain circumstances.

                        The following changes have been made under this bug number in order
                        to improve performance in handling partitions at compile and
                        partition maintenance time: - Partition maintenance operations no
                        longer re-aggregate and derive the statistics from its subordinates
                        to reflect the changes made by the operations. It is most recommended
                        to collect the GLOBAL statistics with dbms_stats and periodically
              1305119   re-collect them as they become out dated. However, derived statistics
                        can be updated by collecting the statistics of any one of its
                        subordinates with dbms_stats or analyze. This is to save time in
                        cases of applying such operations to multiple partitions at once. -
                        If utilization of histograms is desired, they must be collected for
                        all the partitions, except for the queries accessing only single
                        known partition with the partitioning keys. This is to avoid loading
                        unnecessary partition level statistics.

                        This problem was introduced in 8.1.5 A Star query on partititioned
              1312233   tables with parallel degree >1 may result in internal errors
                        ORA-600[25012] or ORA-600[KCBCUR_1) Workaround: Set
                        <parameter:star_transformation_enabled>=false

                        When a global partitioned index is created with the 'reverse', option
              1312425   for a partition table, the index table can be corrupted. Analyze
                        table will show a mismatch with ORA-1499. Query against the table
                        sometimes yields incorrect result.

                        When compiling a query joining to a partitioned table on which
              1331694   partition pruning (elimination) is not possible, Oracle may fail with
                        ORA-7445 [MSQOR()]. The workaround is to set the following parameter
                        to FALSE: _SUBQUERY_PRUNING_ENABLED.

                        DML or Fetch operations raising NO DATA FOUND (ORA-1403 / ANSI error
                        100) can cause an extra shadow process to be spawned to handle the
                        error text. This can severely impact performance of PRO* clients.
Performance   1066827  +Main Symptoms: Server trace shows long gaps between "SQL*Net message
                        from client" Client SQL*Net trace shows new connections established
                        SQL*Net trace shows ORA-1013 and ORA-1019 errors after each ORA-1403
                        Client TRUSS / TRACE shows unexpected fork() or connect() operations

              731848    Improved the performance of LOB export and import by virtue of
                        reading and writing using the LOB chunksize.

                        Enabling a PK for which the columns are known to be NOT NULL and a
              887571    unique index already exists for the PK keys performs a full table
                        scan which is not needed.

              904133    DBMS_PIPE is slower in 8.X than 7.3 (more CPU used)

              914797    Views with INSTEAD-OF triggers may now be merged during query
                        optimization

              955705    DML on updatable join views with rowid predicates use full table scan
                        access, rather than the more efficient rowid access.

              1000209   In parallel server waits for ROW CACHE LOCK could wait needlessly for
                        60 seconds before timing out.

                        ANALYZE ... ESTIMATE would in many circumstances choose a sample to
              1000432   analyse much smaller than that requested, resulting in incorrect
                        sample results.

                        The tkprof utility can core dump when it needed to grow its internal
              1033706   cursor array. This can typically occur if there are over 300 cursors
                        in the trace file.

              1040651   Queries against the DBA_DML_LOCKS view can be slow.
                        Queries using TO_DATE on binds can be slower than queries using

              1042955   to_date on literals. Eg: where DT > to_date(:d1,'MMYYYY') uses more
                        CPU during row fetching than where DT > to_date('101999','MMYYYY')

                        8.1 clients executing DML repeatedly receive far more bytes of data
              1058446   from the server than pre-8.1 clients, causing higher CPU usage in the
                        client. This fix reduces the amount of network data for common DML
                        operations. Note: This is a client side fix.

                        From Oracle8.0 remote queries look up the histogram rowcache for
                        remote columns which can sometimes lead to increased contention on
                        the shared pool. With this fix <Event:10129> can be set (at level 1)
              1065010   to revert back to pre-8.0 behaviour. With this event set remote
                        queries will have less information available to determine the best
                        execution plan. Important: See <Note:75713.1> before setting any
                        event .

              1114711   PL/SQL performance slower than required because NLS data structures
                        are not cached.

              1115424   Cursor checking may insert duplicate entries in the authorization and
                        dependency lists adding load to the shared pool.

                        SMON can take a long time to clean up temp segments in TEMPORARY
              1131535   TABLESPACES. This fix skips the steps to flush blocks from the buffer
                        cache during the SMON cleanup to save time.

                        Using SQL_TRACE against sessions accessing partitioned tables could
              1140381   dump core. This problem was introduced in 8.1.6 with the fix to
                        include partition pruning information in SQL_TRACE trace files
                        (Bug:714369)

                        This problem was introduced in 8.1.5 Updates/deletes can take a long
              1146729   time when indexes are present on the table and the indexes are
                        modified.

              1153691   Faster type checking for TO_DATE expressions during parse. This is
                        mainly for partition tables where the partition key is a date column.

                        This problem was introduced in Oracle 8.1.5 SQL statements may not be
              1193003   shared when they should be. This can increase shared pool latch and
                        library cache latch contention

                        This problem was introduced in Oracle 8.1.5 Cursors are not shared if
              1210242   both TIMED_STATISTICS and SQL_TRACE are set to TRUE. Also see
                        Bug:918002

                        Pro / OCI client side performance can be slower than earlier releases
                        due to un-necessary lookup of ORA-1403 errors at the end of a series
              1239470   of fetches. The actual impact depends on the number of ORA-1403
                        errors received. This fix reduces the number of times we look up the
                        error details.

                        A sort-merge join is used instead of nested loops in the materialized
              1259631   aggregate view refresh query when the table has been modified by a
                        direct load. This affects the performance of refresh.

                        Common subexpressions are not used for functions in a subquery. Eg:
                        Statements of the form: "update point_table x set x.g2 = (select /*+
               1270820  NO_MERGE +*/ Identity(x.g1) from dual);" where G2 is an object type
                        will execute the Identify() function once for each attribute. Note
                        the function MUST be created with the DETERMINISTIC pragma.

              1329899   If 'ALTER VIEW COMPILE' may take a long time compared with recreating
                        the view, espacially if partitioned tables are involved.
Query Rewrite
(including
Materialized  860708    Query rewrite not performed when grouping on a query delta column
Views)

              1200005   Create materialized view on a prebuilt table having columns of type
                        FLOAT raises ORA-12060

                        The server sometimes allows creation of materialized views which are
              1206933   fast refreshable with expressions on aggregates in the select list.
                        This could lead to incorrect results in case of a full text based
                        rewrite.

                        Fast Refresh is not allowed for materialized view on a join if there
              1219363   is a simple filter predicate on one of the columns (eg:
                        column=constant). This fix allows such queries to produce fast
                        refreshable materialized views rather than raising ORA-12015

                        This problem was introduced in 8.1.6.0 Create INDEX on a snapshot /
                        MVIEW can produce a corrupt index. This may show up as ORA-600
              1228658   [13004] or an ORA-600 [25012] or ANALYZE TABLE snapshot_name VALIDATE
                        STRUCTURE CASCADE reporting ORA-1499. This can easily occur if the
                        index can be built from an existing index on the snapshot.

                        Materialized views may remain INVALID after successful refresh. This
              1243417   can cause performance problems as clients each try to recompile the
                        materialized view.

              1245392   Fast refresh of a materialized view / snapshot may miss some rows
                        when more than 1 snapshot is based on the same master table.

              1257713   Query rewrite may signal ORA-932 when BINDS are used

                        A sort-merge join is used instead of nested loops in the materialized
              1259631   aggregate view refresh query when the table has been modified by a
                        direct load. This affects the performance of refresh.

RMAN                    RMAN does not remove a backup script if after "delete script" some
(Recovery     977412    other command is executed (e.g. "list incarnations").
Manager)
              1040149   The RMAN "DUPLICATE" command does not handle READONLY tablespaces
                        correctly Workaround: Use SKIP READONLY

                        RMAN is unable to create a snapshot controlfile if the ORACLE_HOME of
              1058508   the target database has changed (e.g. due to an upgrade). Workaround:
                        Several. Eg: set snapshot controlfile name to
                        '/<path>/<snpshot_file_name>'

                        The RMAN command "release channel" reports RMAN-20020 if there are
              1164440   "set until" and "alter database open reset logs" commands in the same
                        "run" block.

                        RMAN command "RECOVER ... DELETE ARCHIVELOG" does not work properly
              1171700   in an OPS enviroment. The command may delete archive logs before they
                        are applied.

              1186564   The RMAN command DUPLICATE causes RMAN-600 [14019] if MAXLOGHISTORY >
                        9999.

              1186598   RMAN catalog upgrade from 8.1.5 to 8.1.6 fails (eg: RMAN-6444)
                        Workaround: See <Note:99922.1>

              1188620   When several hundreds of records are purged from the catalog with the
                        prgrmanc.sql script, users may receive ORA-1001

                        RMAN was unable to find archived log backups or copies which really
              1218454   did exist (during certain commands such as CROSSCHECK BACKUP OF
                        ARCHIVELOG ALL).

              1223971   When using RMANs DUPLICATE command in an OPS database with 2 or more
                        instances an ORA-2112 error is signalled by RMAN

                        RMAN: When user specifies a TIME for duplication, the time is rounded
              1228207   to a log boundary, thus restore to the middle of a log is not
                        possible.

              1256226   RMAN does not allow parameters > 255 characters in an ALLOCATE
                        CHANNEL PARMS clause.

              1261868   RMAN: If SKIP INACCESIBLE is specified for an ARCHIVELOG Backup RMAN
                        can sometimes hang.

              1279094   Files restored by rman will contain checksums even when
                        db_block_checksum=FALSE

Replication   859195    ORA-24324 can be obtained when ConText is used with Replication.

              922509    ORA-3113 during create_snapshot_repgroup or drop_snapshot_repgroup if
                        snapshot is on a pre 8.1 version and master is on 8.1.5 or higher.

                        If a database at a master site had an SCN that is big enough to have
                        a non-zero wrap number, then doing a snapshot refresh generates an
                        ORA-7445 error and a core dump on the master site, and an ORA-2055 on
                        the snapshot site. This happens regardless of the mechanism used to
              960119    do the refresh, whether with the DBMS_SNAPSHOT.REFRESH() procedure,
                        or with automatic snapshot updating (via SNPn processes and the
                        init.ora parameters JOB_QUEUE_PROCESSES and JOB_QUEUE_INTERVAL). It
                        also happened regardless of the method used, whether fast, complete,
                        or force. This problem was introduced in Oracle 8.1.5

                        CREATE SNAPSHOT may raise ORA-955 during snapshot index creation if
              978980    there are a sufficient number of snapshot indices created in the
                        schema.

              1070909   ORA-1436 when running add_master_database in a JVM environment.

                        Coredump may occur during simultaneous refresh of Java RepAPI
              1116610   snapshots or during offline instantiation of a Java RepAPI refresh
                        group template

                        Incorrect INSERT statements are generated when offline instantiating
              1185585   templates containing VARCHAR2/CHAR/NCHAR etc.. strings with quotes in
                        them.

              1232902   RepSample.java demo program is missing from the 8.1.6 installation

                        This problem affects snapshots created in 8.1.5 onwards. ORA-12028
                        "snapshot type is not supported by master site XXX" may occur if you
              1244117   attempt to create a snapshot in Oracle 8.1 when the master table is
                        on V7X or V80. (The create snapshot may also fail with ORA-600
                        [15459]) The problem occurs when the snapshot is not a primary key or
                        rowid snapshot.

                        This problem was introduced in Oracle release 8.1.6.0 ORA-00904
              1273886   "invalid column name" can occur while executing
                        dbms_snapshot.create_snapshot_repobject in 8.1.6 if the master object
                        is in an 8.0 or Oracle7 database

              1281599   Java RepAPI session crashes on LOB PUSH when MTS_SERVERS>1

                        Sqlldr in direct mode rejects records if the NULLIF/DEFAULTIF clause
SQL*Loader    620277    length is greater than the column size. Users receive ORA-2359: Field
                        in data file exceeded maximum specified length

                        With sqlldr, rows get inserted into the table even if an after
              690443    statement trigger fails and table ends up with wrong rows. This
                        happens if there is also a row level trigger that passes.

                        When file='datafile' option is used in the command line for parallel
              709485    direct load with table-name given in double quotes in the control
                        file Loader gives SQL*Loader-927: Table does not exist error.

              882995    SQL*Loader hangs while loading a NULL value (as in "") into a table.

              883867    Sql*Loader raises ORA-600[6971] when loading data of size >64K with
                        "CONTINUEIF NEXT" option in direct mode.

                        This problem was introduced in 8.1.5 If there are leading whitespaces
              890656    in the record in the datafile that shows the length of the record in
                        VAR option, sqlldr hangs.

                        SQL*Loader crashes when long error messages ( > 256 ) are generated
              896493    by raise_application_error() in the table's triggers or associated
                        procedures.

                        Direct path loader incorrectly reports that rows have been
              911777    successfully loaded when loading was actually aborted due to a
                        PARTITION being readonly.

              918211    SQL*Loader dumps using VARCHARC/VARRAWC with LENGTH>10 Eg: Using a
                        control column specification of (col1 VARCHARC(11,20)) will dump.

                        When using SQL*Loader in conventional mode to load tables containing
              933703    LOB columns, the server sometimes returns the error ORA-22990: LOB
                        locators cannot span transactions

                        Direct-path loader sometimes caused corrupted data to be loaded if
              939510    both the CONTINUEIF continuation clause and the PIECED field option
                        are specified Workaround: Use conventional load.

              944009    Loader may report ORA-1722 when loading zoned data. This problem was
                        introduced in 8.1.5

                        This problem was introduced in 8.1.5 If SQL*Loader uses the ENCLOSED
              1001227   BY clause along with TERMINATED BY X'09' (the TAB character) then
                        records are rejected with a "NO TERMINATOR FOUND" error.

                        This problem was introduced in 8.1.5 Sql*Loader may return
              1012544   'SQL*Loader-941: Error during describe of table' and 'ORA-04043:
                        object does not exist' when loading data through a view Workaround:
                        Load the base table directly.

                        ORA-2363 may be signalled and valid data discarded when: -
                        termination and optional enclosure delimiters are defined
                        ('CONTINUEIF' and 'FIELDS TERMINATED BY' clauses in use) - a logical
              1050045   record consists of some physical records - a field (column) is split
                        into these physical records and the field does not use the enclosure
                        delimiters. - these physical records are split into separate read
                        buffers

              1083887   SQL*Loader does not the handle maximum errors parameter (ERRORS)
                        correctly on multiple table inserts.

                        This problem was introduced in 8.1.5.0 Using conventional path loader
              1084068   to load packed decimals from EBCIDIC data file would result in error
                        LDR-641: Invalid zoned decimal nibble Workaround: Use direct path
                        load

              1115758   Conventional path loader may sometimes reject good records containing
                        zoned/packed decimals depending on the order of the records.

                        Direct load operations (direct load, CTAS, APPEND) may set the wrong
                        space usage on a block if the table being loaded has more than 255
                        columns but the head pieces end up less than the "stub space" (9
              1146253   bytes). This can introduce a silent corruption which is only detected
                        later on, (or will crash the load session if block checking is
                        enabled). . This cannot occur in Oracle7 as there cannot be > 255
                        columns . Analyze of affected objects typically show: "kdbchk: the
                        amount of space used is not equal to block size "

                        A direct load into an empty partition which has two or more
                        subpartitions will corrupt the local indexes in all other partitions
              1171627   are truncated. Workaround: a. Insert at least one row into the
                        partition you wish to load into or b. Re create all local indexes
                        after the load

                        Parallel direct load may set index status to VALID when no rows are
              1186914   loaded, even though a concurrent load job may have made the index
                        invalid by loading rows. This can introduce a mismatch between index
                        and table data. . Workaround: Recreate indexes after a load.

                        SQL*Loader does not read data from the standard input stream when
              1271684   using the INFILE "-" clause in the control file. There are several
                        related bugs for this problem in earlier Oracle releases.

                        Direct path loader put rows into the blocks with very poor space
              1311077   utilization when a number of columns was more than 255 and a DB block
                        size was big enough to store 2 and more rows in a block.

                        While using SQL*Loader in direct mode with the SINGLEROW option, if
              1322944   the load fails then the Index may still be marked as USABLE, but the
                        table and index are inconsistent.

                        When an ADT type (having a nested table type embedded inside it) is
Security      1082630   used as column of a base table, it is not possible to use fine
                        grained access control on the base table.

              1139334   OS Authentication over SQL*Net may cause the Oracle shadow to dump
                        (ORA-7445) in nau_ctl or similar.

                        Changes of application context inside a trigger or a procedure is not
              1285808   seen by the subsequent SQL ( query or DML ) until the next time the
                        trigger or procedure is invoked again.

Space                   Temporary segments are not released after the failure of local DDL
Management    648147    involving a query to a distributed database.

                        DBMS_SPACE.UNUSED_SPACE yields an internal error when issued against
              986928    a temporary table (or an index on such a table). The fix is to issue
                        an external error - ORA-3211 (since such an operation is not
                        supported).

                        Direct path loader put rows into the blocks with very poor space
              1311077   utilization when a number of columns was more than 255 and a DB block
                        size was big enough to store 2 and more rows in a block.

                        Migration of a dictionary managed tablespace to bitmapped can fail
              1325540   with ORA-600 [KTTMUPD_SEGMENT-] (from
                        DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL)

                        This problem was introduced in 8.1.6 Standard date/time functions may
                        give unexpected results when used in PLSQL. This can show up in lots
                        of forms. The problem is that certain functions / operators now
                        default to datatype TIMESTAMP in PLSQL rather than DATE. Eg-1:
Wrong Results 1120715+  "declare cursor c is select nvl(sysdate,'11-JAN-99') from dual;"
                        returns a TIMESTAMP. Eg-2: ALTER SESSION SET NLS_DATE_FORMAT =
                        'DD-MON-YY'; declare mydate DATE; BEGIN mydate := '12-JAN-95'; if
                        (mydate = '12-JAN-95') then AAA else BBB end if; END; Will run BBB
                        rather than AAA as both sides of '=' are converted to a TIMESTAMP.
                        Workaround: Use explicit datatype casting (TO_DATE)

                        A select from ALL_SYNONYMS may not find the complete set of
              641756    accessible synonyms for the user performing the query. (This has been
                        the case at least since Oracle 7.1.6)

                        If a startup parameter value exceeds 512 characters, a select from
              644176    V$PARAMETER returns a NULL value for the parameter. The parameter
                        value is also not printed to the alert log on startup.

                        select distinct ... with group by may return non-distinct values for
              896863    a distinct column if run in parallel and the GROUP BY list has keys
                        other than DISTINCT keys

                        UID, LEVEL and ROWNUM are unsigned numbers within the server yet are
              908985    incorrectly converted to signed numbers when passed to the client.

                        This causes unwelcome effects such as negative user numbers e.g. in
                        'select uid from dual;'
                        A query against union-all view with a correlated subquery in the
              910876    where clause may return an incorrect result if the subquery is NL
                        joined and the subquery predicate is used for the index key.

                        When using transparent application failover with an application that
              958026    uses array fetching (such as SQL*PLUS), queries which fail over
                        sometimes return incorrect results or hang. Workaround - disable
                        array fetches.

                        When using SQL*PLUS COPY command to copy to an FDS through HS, rows
              968360    may get duplicated. Eg: If there are 5 rows, and the array size = 3,
                        6 rows will get inserted, (the last row is duplicated). This problem
                        ONLY affects Heterogenious Services (gateways)
                        Oracle does not report an error if (+) is specified in select-list.

                        The OUTER JOIN operator (+) is only valid in WHERE clause predicates.
              974742    As this is not flagged as an error the query can give unexpected
                        results. The correct action to avoid this problem is to fix the
                        query.

                        On some multi-byte character set environment, for example JA16SJIS,
              988057    the query result which contains LIKE operator with ESCAPE keyword may
                        wrong.

                        Query which has inlist predicate and range predicate on partition
                        columns may result in an incorrect result Eg: A table with "Partition
              1024478   by range (dt1,dt2)" can return wrong results for a query of the form:
                        select * from dt where dt1 in (1,2) and dt2 >= 4 and dt2 <= 5 order
                        by 1,2;

                        Sort-Merge join may return incorrect results for certain forms of
                        query when an incorrect assumption that the driving table is
                        trivially ordered and no transitive predicate is generated for
              1031050   expressions. Eg: SELECT /*+ ordered use_merge(B) */ ac, bc FROM A,B
                        WHERE B.bc = 2 AND A.ac + 0 = B.bc; (A holds 3,2,1; B hold 2) Plan
                        incorrectly omits a sort on A: MERGE JOIN FULL SCAN of A SORT FULL
                        SCAN of B

                        RBO may return incorrect results if a query compares ROWNUM to an
              1044557   aggregate in an inline view. Eg: select rownum,empno from scott.emp,
                        (select max(2.8) mx from dual) where rownum<mx; Workaround: Use CBO.

              1044800   SELECT ROWID FROM <TABLE> returns nonsense if the server is EBCDIC
                        and the client is ASCII. Note: This is a CLIENT SIDE fix.

                        This problem was introduced in 8.1.5 A Query which leads to a remote
              1046027   colocated join may return incorrect results if the query has non
                        simple join predicates on the remote tables. This only happens when
                        using CBO.

                        Parallel CTAS may produce an incorrect result set in the target table
              1082299   if the driving select has columns of type CHAR used both in the
                        select list and in the predicates.

              1096399   The LAST_DDL_TIME field in ALL|DBA|USER_OBJECTS is not updated
                        following a rebuild of a non-partitioned index.

                        When cost based optimizer is used a query may return the wrong number
                        of rows when the INLIST ITERATOR is used against user supplied ROWIDS
              1105194   and there is a join to another table. Eg: select .. from A, B where
                        a.c1=b.c1 and B.ROWID in
                        ('AAAA2BAAEAAAALYAAA','AAAA2BAAEAAAALYAAB','AAAA2BAAEAAAALYAAC');

                        DBMS_SQL.BIND_ARRAY processed twice as many rows as in the bound
                        PL/SQL table for specific input table sizes (related to internally
                        determined collection page size). Example: For
              1115720   DBMS_SQL.VARCHAR2_TABLE type, the size happens to be 12231; if user
                        binds a VARCHAR2_TABLE table using DBMS_SQL.BIND_ARRAY to a DML
                        statement, then the DML statement will be executed 24460 times
                        (should be 12231 times).

                        This problem was introduced by the fix for Bug:622264. When a PLSQL
              1120798   query across a DBLINK uses bind variables it is possible for wrong
                        results to be seen.

                        Wrong results possible with "_OR_EXPAND_NVL_PREDICATE" and zero
              1122703   length strings. Eg: '' should be treated the same as NULL when this
                        parameter is TRUE but it may not. The fix addresses this problem.

              1136037   Wrong results can occur under CBO if INLIST contains a correlated
                        variable. Eg: t.col IN (t2.col, t2.col_b)

                        Eg: select * from iot_table partition(xxx) where global_index_col<100
              1140587   may return data from more than the specified partition giving
                        incorrect query results.

                        A query on a partition table with a group by and an order by
              1147272   descending clause returned rows in the wrong order when the group by
                        and order by columns are the same as the partition key

                        Queries that SELECT from a VIEW which contains more than one
              1150775   predicate, and where one of the predicates is based on ROWNUM, may
                        return fewer rows than expected.

                        When passing an _EXPRESSION_ as an actual parameter to a subroutine
                        IN formal parameter, if the expression is of type CHAR and the formal
                        parameter is VARCHAR2, or vice versa, the parameter's type is not
              1170095   changed to that of the actual. This results in the parameter having
                        incorrect semantics in the called function which can result in
                        incorrect behaviour. (We should use the semantics of the PASSED IN
                        type)

              1175373   Wrong results possible from UNION ALL of partitioned tables if some
                        of them have a degree of parallelism and some are NOPARALLEL.

                        This bug is effectively a duplicate of <Bug:385681> re-introduced in
              1176886   8.1 If an SMJ and unique index scan and the index scan is known to
                        return only a single row then a query may either dump or return
                        incorrect results. Workaround: Use CBO

                        STAR_TRANSFORMATION can cause wrong result if fact and dimension
              1185618   table are joined on more than one column. This can also cause core
                        dumps as opposed to incorrect results

              1208080   m/n gives the wrong result for these two numbers
                        m=2787433692433919301962350007441968 n=1099511627776 (ie: 2^40)

                        Wrong result could be returned if a subquery has MIN(trailing index
              1210899   column) in the select list. Workaround: Set <event:10167> to disable
                        index min/max scan Important: Read <Note:75713.1> before setting any
                        event on a database.

                        PUSH_JOIN_PREDICATE into a view which includes a sort-merge-join can
                        result in incorrect results. Workarounds: Disable pushing of join
              1223775   predicates ie: Set <Parameter:PUSH_JOIN_PREDICATE> to FALSE. This
                        parameter is hidden in Oracle8i or Ensure there is no SMJ in the
                        view.

              1232884   INSERT /*+ APPEND */ does not blank pad CHAR columns

                        Wrong result can be returned , or coredump can occur if a query joins
                        a complex view to a table (or other view) on aggregation column, and
              1251196   a query has filter predicate on the same aggregation column: Eg:
                        CREATE VIEW V as select acol ,... from T1 groub by acol; select acol
                        from V,T2 where V.acol=T2.col and V2.col RELOP const

                        This problem is introduced in 8.1.5 When the local machine is 8.1.X
                        you access tables via a database link to a remote dataabase and your
                        query uses the EXISTS clause then the EXISTS clause returns false
                        every time causing incorrect results. This occurs regardless of the
              1251491   remote database versions. Eg: select 1 from dual where exists (select
                        * from local805a@TOV805 a ,local805b@TOV805 b where a.a1=b.b1);
                        Workaround: Set <Event:10127> to level 1 to avoid this problem
                        Important: Read <Note:75713.1> before setting any event on a
                        database.

                        This problem was introduced in 8.1.5 Parallel query may return the
              1253654   wrong results if a GROUP BY clause is used with a function rather
                        than a column. The wrong results may also occur if a parallel plan is
                        run serially.

              1259714   A query with a descending order-by clause that involved a sort-merge
                        join between two views returned incorrect results.

                        This problem was introduced in 8.1.5 A query involving the join of 2
                        or more remote tables (over a dblink) could return the wrong result.
              1281200   Workaround Set event:10176 to level 1 Events should NEVER be set by
                        customers unless advised to do so by Oracle Support Services. See
                        <Note:75713.1> for more details.

                        This problem was introduced in 8.1.6.0 A query with outer joins and a
              1324092   descending order-by clause on one of the join columns returns
                        incorrect results.

                        Group by cube operator can return incorrect results. The grouping
              1329211   function used in conjunction with the cube operator to distinguish
                        between aggreagate NULL and real values returns wrong values. The
                        query returns NULL where real values are expected and vice versa.

XA            670827    When using an Oracle8 XA client to connect to an Oracle7 database,
                        XA_RECOVER gets ORA-942 trying to read V$XATRANS$.

              780572    Usage of objects in XA applications can generate random and often
                        non-existent runtime errors.

                        If a prepared XA transaction had more than two transactions branches,
              951528    then xa_recover could fail to find the transaction, or could fail
                        with ORA-1722.

              966392    XA clients may crash if using connection caching from a V8 client to
                        a V7 database.

                        If ax XA transaction was suspended, and if a second transaction was
                        then executed in the same server including an xa_end with TMSUCCESS
              976768    flags, then the fetch state for cursors in the first transaction
                        would be reset. When the process resumed the first transaction, it
                        would get ORA-1002 if it tried to fetch again from the cursors.

                        If an error occrred in xaoclose, the XA trace file is written to the
              1020305   directory in which the program was launched rather than in the
                        specified LogDir.

              1032904   XA client memory leak if OBJECTS=T and threads terminate. Affects
                        Microsoft-MTS

                        ORA-24777 using DBLINKs in XA or migratable OCI transactions without
              1103036   MTS. Note: XA sessions MUST be migratable and so must use MTS for
                        DBLINKS. However, OCI initiated transactions may state
                        OCI_TRANS_NOMIGRATE and thus should be allowed to open a DBLINK.

                        When using XA transaction having multiple branches in a transaction,
              1116499   ORA-600[6856] and data corruption could occur if the branches were
                        simultaneously rolled back.

                        If an error occurs when opening an outbound circuit for an xa
              1247625   application, then it is possible for PMON to crash when trying to age
                        out a branch whose sestm has expired or which has been killed by
                        asynchronous xa_rollback.

                        When running an XA application with database links, it is
                        occasionally possible to get ORA-600 [16352] / ORA-00600 [16377].
              1266632   This can occur as it is incorrectly possible for a DEDICATED XA
                        session to use a database link if it has previously been opened by an
                        MTS connection. Dedicated connections should raise ORA-24777 when an
                        attempt is made to use a database link.

              1279964   PMON can die with ORA-600[4414] if it is unable to get a latch to
                        delete branch information. This can cause the instance to crash.

              1285882   This problem was introduced in 8.1.5 XA client with V8OCI connection
                        from a Pro* client may get an ORA-3113

                        Multiple branches in a global transaction may signal a false deadlock
              1328999   between each other. This typically shows up as an ORA-60 between a DX
                        lock and an 'enqueue hash chains' latch .

                        This problem was introduced in 8.1.6 Standard date/time functions may
                        give unexpected results when used in PLSQL. This can show up in lots
                        of forms. The problem is that certain functions / operators now
                        default to datatype TIMESTAMP in PLSQL rather than DATE. Eg-1:
PL/SQL        1120715+  "declare cursor c is select nvl(sysdate,'11-JAN-99') from dual;"
                        returns a TIMESTAMP. Eg-2: ALTER SESSION SET NLS_DATE_FORMAT =
                        'DD-MON-YY'; declare mydate DATE; BEGIN mydate := '12-JAN-95'; if
                        (mydate = '12-JAN-95') then AAA else BBB end if; END; Will run BBB
                        rather than AAA as both sides of '=' are converted to a TIMESTAMP.
                        Workaround: Use explicit datatype casting (TO_DATE)

                        A describe of a cursor obtained as a REFCURSOR by executing a
                        definer's rights function could fail with ORA-942 or other
              1142096+  permissions errors. This is a regression introduced in 8.1.5 which
                        may cause upgrade problems for applications using REFCURSORS
                        extensively.

              553250    When the amount of memory to allocate for a bind buffer exceeds the
                        maximum allowed, ORA-00600 [17176] or [733] are raised.

                        PLS-999 may occur when: (1) a cursor selects NULL, (2) a record
                        variable (explicit (c%rowtype) or implicit (cursor for loop)) is
              563584    based on that cursor. (3) The NULL field of the record is passed as a
                        parameter to a function. and compilation fails with PLS-00999 with
                        "pdtptv_char_info:Problem compiling CHARSET"

              696531    ORA-1002 *NOT* Being returned - commit in a fetch loop with select
                        for update

                        Position of the arguments from 'DESCRIBE PROCEDURE' is reversed after
              782989    compile. This may also cause ORA-7445 with stack trace containing
                        'kqlalb'.

                        PL/SQL does not accept the syntax function@dblink(). for
              784046    parameterless calls. Local empty calls are acepted. OK: "select f()
                        from dual;", Not OK: "select f@x() from dual;"

              854842    PLS-801 or core dump can occur when a long SQL statement has single
                        quotes at a 2k internal boundary.

                        CREATE TABLE followed by CREATE OR REPLACE PROCEDURE / PACKAGE which
                        references the table may dump core in ph1gla / ph1sca. This can
              897267    happen if a describe of the table has been issued before executing
                        the CREATE TABLE command. Workaround: Re-issue the CREATE or REPLACE
                        in a new session.

                        While a SQL statement is being issued in a LOOP inside of a PL/SQL
              944508    block which has a LONG somewhere in the middle of the bind variables,
                        if the length of the LONG was longer than 4K, the wrong address
                        reference is sometimes used when reusing the cursor.

                        Certain constructs in stored PL/SQL can cause the errors "ORA-6553:
              986962    PLS-707: unsupported construct or internal error [2601]" after the DB
                        has been bounced OR when the shared pool is flushed.

                        If you pass a CHAR actual parameter to a routine with an IN VARCHAR2
                        formal parameter, that parameter will behave as a CHAR-typed value in
                        the routine. In particular, it will use CHAR (variable length, blank
                        padded) comparison semantics when compared with a CHAR-typed value.
                        The same problem holds with VARCHAR2 actuals and IN CHAR formals.
              1034486   Workaround: 1) Change the type of the formal parameter in the called
                        function to match the type of the actual argument. 2) Assign the
                        formal argument to a local variable of the same type inside the
                        called routine, and use the local variable instead of the parameter.
                        3) Change the declaration of the formal parameter to be IN OUT rather
                        than IN.

                        A compile-time error (PLS-707) can occur when PL/SQL code calls a
                        remote procedure with default values of parameters that call a
                        STANDARD function. Eg: Remote procedure REMOTE_PROC(X DATE :=
                        SYSDATE) is called as BEGIN REMOTE_PROC; END; on a PLSQL client side
              1046896   or BEGIN REMOTE_PROC@DBLINK; END; over database link. The problem
                        occurs if the version of "STANDARD" differs between the 2 ends of the
                        RPC. Eg: 8.0 calls 7.3. Workaround: Use a constant default (such as
                        NULL) and use this to indicate that a functional value (such as
                        SYSDATE) should be used.

                        This fixes a regression introduced by the fix for <Bug:790632> such
              1063571   that access to remote variables was overly restricted by that fix.
                        This is a CLIENT SIDE bug and can affect forms or other PLSQL based
                        clients.

                        A PL/SQL procedure run in the server which alters an NLS parameter
              1070347   via dbms_session.set_nls() does not demonstrate the altered behavior.
                        Only when the procedure completes, and another procedure is executed,
                        does the altered behavior start to occur.

              1073277   When a FETCH is done in a PLSQL LOOP then a second FETCH on the same
                        cursor after the exception may dump.

                        PL/SQL compiler did not allow inserting into a clob or blob column
              1087888   with character data through a subquery, or updating a set of columns
                        containing one or more clob or blob columns.

              1114711   PL/SQL performance slower than required because NLS data structures
                        are not cached.

                        A Pro/OCI client may hang or dump after a call to a PLSQL procedure
              1120120   which raises a user defined exception (RAISE_APPLICATION_ERROR). The
                        hang / dump occurs when the statement is re-executed.

                        This bug happens during an assignment in PL/SQL. If the target has a
              1125143   number attribute with precision 0, then we do not need to check for
                        precision constraint violation. This can cause an erroneous ORA-6502
                        error.

                        When index tables contained more than 255 columns an internal error
              1140444   is raised. This mostly affects PLSQL clients such as FORMS which try
                        to base a forms block on a server procedure with an IN OUT parameter
                        of a RECORD type containing more than 255 fields.

                        PLSQL may dump for certain SQL statements with UNIONs in inline
              1157754   views. Example: create table t1(n number); create table t2(n number);
                        insert into tt(n) select n from (select 0 as n from t2 union select
                        decode(0, 1, 0, 1) from t2);

                        When passing an _EXPRESSION_ as an actual parameter to a subroutine
                        IN formal parameter, if the expression is of type CHAR and the formal
                        parameter is VARCHAR2, or vice versa, the parameter's type is not
              1170095   changed to that of the actual. This results in the parameter having
                        incorrect semantics in the called function which can result in
                        incorrect behaviour. (We should use the semantics of the PASSED IN
                        type)

              1175540   A Dump may occur when using constructs of the form RECORD (x
                        TAB.COL%TYPE := const) if TAB cannot be resolved to a valid table.

              1182323   A procedure called "ARG" causes PLS-371, as does trying to reference
                        objects in a schema called ARG from PLSQL.

              1197218   ORA-7445 encountered when executing a PLSQL package.

              1243982   Missing tablespace name etc. in error messages raised via trusted
                        callouts.

                        Nested tables or VARRAYS of PL/SQL records with default attribute
                        values initalize the table element to defaults every time an element
              1249760   is modified. Eg: declare type r is record(a varchar(10) := 'dflt', b
                        number); type t is table of r; x t := t(); begin x.extend; x(1).a :=
                        'nondflt'; /* print x(1).a here and it shows 'nondflt' */ x(1).b :=
                        1; /* print x(1).a here and it shows 'dflt' */ end;

              1261753   When a temp lob is selected from a function into a local LOB variable
                        in a query executed in a plsql block an ORA-22922 is raised.

              1287535   PROBE may not stop at a breakpoint when more than one schema is
                        involved.

                        This problem was introduced in 8.1.5 A long-running session that
                        creates a large number (>32767) PL/SQL objects (e.g., an import) may
                        core dump while creating a PL/SQL object beyond the 32K limit. (Note
              1298586   this is not a size limit on individual objects but on the total
                        number of objects created in the session) This is most likely to
                        affect long running sessions creating lots of PLSQL objects, such as
                        IMPORT

                        This problem was introduced in 8.1.6 Bulk SQL statements executed in
              1300758   a loop in PL/SQL programs can raise dump (eg: with ORA-7445 in
                        <Function:pfr_v3_tab_handler> )

              1301936   LOADPSP may return an ORA-6502 error when the input file exceeds 32K.

                        The NVL function as implemented by PL/SQL returns the wrong data type
              1306873   in some cases, which can result in incorrect output. Eg: NVL(varchar,
                        number) returns NUMBER in PLSQL but should return VARCHAR2

PL/SQL (DBMS            File dbmsutil.sql does not say which schema to run in. It should be
Packages)     176114    run as SYS

                        DBMS_UTILITY.COMPILE_SCHEMA can fail with ORA-1436 in 8.1 releases
              895238    when any Java objects exist. This problem was introduced in Oracle
                        8.1.

              904133    DBMS_PIPE is slower in 8.X than 7.3 (more CPU used)

              968942    ORA-7445 using DBMS_SQL.BIND_VARIABLE without calling DBMS_SQL.PARSE

              969814    When running DBMS_UTILITY.ANALYZE_DATABASE or ANALYZE_SCHEMA, the
                        dictionary tables FET$ and UET$ are analyzed also.

                        session dumps when a user is binds to a cursor which has not yet been
                        parsed. Eg: DECLARE C INTEGER; BEGIN C := DBMS_SQL.OPEN_CURSOR;
              974558    DBMS_SQL.BIND_VARIABLE(C, ':1', 'X'); END; ORA-01041: internal error.
                        hostdef extension doesn't exist . In the fixed version, ORA-1003 ( No
                        statement parsed ) is raised

                        DBMS_SPACE.UNUSED_SPACE yields an internal error when issued against
              986928    a temporary table (or an index on such a table). The fix is to issue
                        an external error - ORA-3211 (since such an operation is not
                        supported).

                        This problem was introduced in Oracle 7.3.4.4 / 8.0.4.0 DBMS_ALERT
              1099387   does not work with Parallel Server - registering an alert on any node
                        in an OPS clusted deregisters alerts on all other nodes.

              1108002   ORA-600 [25012] is signaled when DBMS_STATS tries to gather
                        statistics for a GLOBAL TEMPORARY table.

                        DBMS_SQL.BIND_ARRAY processed twice as many rows as in the bound
                        PL/SQL table for specific input table sizes (related to internally
                        determined collection page size). Example: For
              1115720   DBMS_SQL.VARCHAR2_TABLE type, the size happens to be 12231; if user
                        binds a VARCHAR2_TABLE table using DBMS_SQL.BIND_ARRAY to a DML
                        statement, then the DML statement will be executed 24460 times
                        (should be 12231 times).

                        UTL_PG.NUMBER_TO_RAW_FORMAT behaves badly for a NULL input. Results
              1166931   can include inconsistent return results, dump or tight CPU spin.
                        Workaround: wrap any call to this function with a check to ensure the
                        input is not NULL

              1182131   ORA-02399 may occur when running a job if CONNECT_TIME is set to any
                        value other than UNLIMITED.

                        dbms_stats.gather_schema_stats() may skip a table and not recalculate
              1192012   the table's statistics when the 'GATHER STALE' and 'GATHER EMPTY'
                        options are used.

                        The function WRITE_RAW_DATA of the PL/SQL package UTL_SMTP is not
              1239254   defined in that package and the compilation of PL/SQL programs that
                        use this function will fail.

              1245019   Internal errors such as ORA-600 [19004] may occur from queries after
                        statistics have been loaded using DBMS_STATS from a user stats table.

              1288563   Using DBMS_SQL to truncate or ANALYZE a table might cause ORA-4020.

              1296682   Parallel DML (PDML) runs serial from DBMS_SQL / PLSQL EXECUTE

                        ORA-907 ( Missing right parenthesis ) is signalled while running
              1326515   DBMS_STATS.GATHER_TABLE_STATS, if any of the column names in the
                        table has spaces e.g. "Column 1"

                        A delete statement with delete cascade constraints and triggers on
Dumps /       936193+   the table may cause ORA-7445. Stack trace usually includes
Abends                 'kxtlpt()', 'kglpnp()'.

              837625    ORA-7445 may occur on all platforms when raising ORA-1. Stack trace
                        includes 'kxccani'.

                        An update of an updatable view, which contains a GROUP BY clause in
              845382    the view definition (and hence needs an INSTEAD OF trigger) can core
                        dump

              854842    PLS-801 or core dump can occur when a long SQL statement has single
                        quotes at a 2k internal boundary.

              883002    Client executable might core dump on connect if the executable is
                        invoked using an absolute filename that exceeds 54 characters.

                        Unix file size limit potentially can corrupt oracle blocks if an
              887509    oracle block crosses the limit boundary. File size limits are usually
                        specfied in units of 512 byte blocks which means that an oracle block
                        can possibly begin below the limit and end above.

                        INSERT INTO table AS SELECT MAX('string') FROM table can cause the
              1030584   server to crash if the value selected is larger than the maximum size
                        for the target column. This also affects the functions DISTINCT() and
                        UNIQUE(). The statement should return ORA-1401 in these cases.

                        If an Oracle server process is starting up at the same time the
              1034840   database is being shut down, it can get a core dump. There is no
                        serious side effect from this, just errors in the alert log and trace
                        files from the failure.

              1051252   Create view "with check option" causes a core dump if at least one of
                        base tables is a remote table

              1078551   Execution of table triggers on child tables in a delete cascade
                        statement may dump. (eg: ORA-7445)

              1157654   Dump may occur in <Function:KKSFBC>

                        If "_push_join_union_view" is set to TRUE and a view is used which
              1182720   contains the same columns over and over again then the session may
                        crash in <Function:kkoixo> Workaround: Set "_push_join_union_view" to
                        FALSE

                        If a table contains a composite index which includes the primary key
                        of the table, and there is a self referential foreign key constraint
              1226609   (referencing the primary key) then update of the foreign key column
                        and a non-primary key column of the composite index can cause a dump
                        in <Function:kxccexi>.

              1257064   TKPROF may core dump when large cursor numbers are encountered and
                        the malloc() system call does not zero memory.

              1333360   Some queries that use the UNION or UNION ALL structure can core dump
                        when parsed, if one of the UNION [ALL] branches is executed remotely.

                        This bug was introduced in 8.1.5 If total size of all columns
                        appearing in the Non-Distinct aggregate functions exceeds the DB
Errors &                block size , the sort refuses to perform comparison there-by giving
Internal      980664+   (ORA-1467) error. This is correct behaviour. However, queries
Errors                  containing MAX() or MIN() operators can treat these as DISTINCT
                        aggregate functions (MAX(a) is the same as MAX(DISTINCT a)). In
                        Oracle8.1 MAX is not being converted to MAX(DISTINCT..) causing a
                        higher likelyhood of an ORA-1467 error.

                        The combination of temporary tables and temporary tablespaces could
              1186884+  cause the server to error out or spin upon abnormal client
                        termination. Workaround: Use PERMANENT tablespace for users TEMP
                        tablespace when using TEMPORARY tables.

                        Concurrent CREATE and DROP statements can cause the DBWR process to
              936976    report ORA-600 [kcbcxx_1] and terminate the instance. This is due to
                        a very small race condition.

                        Ora-600 [16606] and / or [12819] errors can raised when the shared
              969413    pool is heavily loaded. The errors indicate problems in the
                        constraint lookup code

                        ORA-600[12325], [4] occurs if a view column is based on the GROUPING
              1010422   function and query has predicate involving this column. Eg: create
                        view V as SELECT DECODE (GROUPING(id),1,0,id) id ....; select * from
                        V where id=1;

                        64 bit platforms may raise ORA-1037 errors for queries which work
              1033417   fine on the same data on a 32 bit platforms. Note: Some backports of
                        this fix to earlier releases are broken. See the alert in
                        <Note:116764.1>

                        ORA-600 [17034] can occur while attempting to update a table with an
              1096056   invalid value (value too large for column) if the table has UPDATE
                        TRIGGER defined. The server process may spin (appearing to hang) on
                        disconnect.

              1152302   Incorrect error message for error code ORA-3219

              1155964   Incorrect position may returned when querying a view returns an error

                        Delete operation against a table which results in triggers being
              1165009   fired may ultimately fail with ORA-600 [12700] if the trigger code
                        results in DML against the same table as the original delete and
                        statement buffering is in effect.

              1168317   ORA-4020 is possible from CREATE INDEX ... INDEXTYPE

              1178821   Explain plan of a query using Star transormation with temporary
                        tables may give ORA-1790 errors or dump core in <Function:rworirw>

                        Queries that perform a "top n" operation, that is, that have a
              1252970   subquery with an order by and a "rownum < n" clause in the outer
                        query, sometimes fail with an ORA-600[SRDMER_1] error.

              1259450   ORA-600 [kcbgtcr_13] can occur.

                        If a call type trigger calls a procedure as its body. and If the
              1270861   status of both the trigger and the procedure are "invalid" then an
                        "alter trigger compile" signals ORA-600 [4882]. Workaround: Manually
                        fix up and recompile the procedure, then recompile the trigger.

              1273347   ORA-600 [12333] can occur

                        This problem was introduced in 8.1.5 Inserts into clusters or indexes
                        may report ORA-600 [ktbgfi2] if 2 sessions try to insert into the
              1294923   same cluster / index block at the same time and all transaction slots
                        in the block are already in use. This can also affect DDL statements
                        such as DROP that update the data dictionary.

              1297674   ANALYZE TABLE ESTIMATE STATISTICS can fail with ORA-600 [25012].

                        ALTER TABLESPACE ADD DATAFILE can fail with ORA-600 [5106] when
              1301273   adding more than one datafile in a single operation. There is no
                        corruption involved, just this error. This is most likely to occur on
                        a database which has been migrated from Oracle7 to Oracle8.

                        Processes can die with an ORA-600 [15428] when the shared pool is
              1328709   under heavy load and doing synonym translation. This is actually
                        masking an ORA-4031 error.

Miscellaneous 601567    Column LOCK_ELEMENT_ADDR of V$LOCK_ELEMENT is incorrectly defined.

              696462    DBA_KEEPSIZES does not show the size of triggers

              852425    8.1 dbstart does not start up version 7.3.4 databases

              889678    The length of the terminal string in the fixed view V$SESSION is only
                        10 characters

                        Selecting from v$logmnr_contents for logfiles of databases with block
                        size > 2K may return ORA-7445 if they contain redo records
              1059067   corresponding to LONG data type. . Workaorund: (1) Do not select
                        SQL_REDO and SQL_UNDO columns from v$logmnr_contents (2) If SQL_REDO
                        and SQL_UNDO is needed, then use start_session with SCN range that
                        does not include the offending records.

              1150688   For long values of ORACLE_HOME the call stack written to trace files
                        is broken Solaris.

              1154931   The DBSTART script does not start 8.1.6 and higher instances
                        Running catalog.sql reports several ORA-942 errors due to incomplete

              1175426   schema object names within statements in the file. In particular the
                        table names gv$dlm_traffic_controller and v$dlm_traffic_controller
                        are split across lines.

              1219425   The dbstart script does not work correctly with mixed versions (eg:
                        7.3.4 and 8.0) and can set LD_LIBRARY_PATH to the wrong location.

              1237128   V$SESSION may contain a blank PROGRAM column due to an error passing
                        program information during client/server logon.

                        The hash function used to generate the key for semaphore set
                        allocation generates duplicates for similar ORACLE_SID/ORACLE_HOME
              1262942   combinations. This can cause problems when there are several
                        databases on the same server using similar ORACLE_SIDs as if the keys
                        are the same only one of the instances can be running at a time.
                        Workaround: Rename the ORACLE_SID of one of the clashing instances.

              1265445   The upper limit for the <Parameter:DB_BLOCK_LRU_LATCHES> is too high.

                        This problem was introduced in 8.0.5.2 The lock_date column in
              1323236   dba_users view only contains the date of account lock, not the date
                        and time.

                        ORACLE_HOME/bin/relink script fails to relink utilities such as
              1337908   exp,imp, sqlldr, tkprof, etc. when 'relink all' was invoked.
                        Workaround: (a) relink utilities ; (b) relink all

------------------------------------------------------------------------------




32.0 8.1.7 OPEN BUGS
====================

32.1 MISCELLANEOUS BUGS
-----------------------

BUG:692232

Description: When autonomous transactions are used within distributed
transactions and there is a deadlock situation, then the distributed
transaction does not timeout.

Workaround: Do not use autonomous transactions with distributed
transactions.

BUG:820224

Description: During CREATE TABLE AS SELECT using parallel query, Oracle
sometimes hangs waiting for an exclusive lock.

Workaround: Disable parallel query for the statement.

BUG:764456

Description: User cannot issue DDLs in the ODCIStatsCollect() function
while ANALYZing a partitioned table or a domain index built on a
partitioned table.

Workaround: If an association has been defined with the column type, and
the ODCIStatsCollect() function in that association type issues a DDL the
workaround for the user (in order to ANALYZE the partitioned table
successfully) is to define a new association with the column where the
ODCIStatsCollect() function is empty. That will ensure that the ANALYZE
will be able to successfully collect the standard statistics though no user
defined statistics will be collected.

BUG:679751

PL/SQL functions returning VARCHAR cannot be used to create a
function-based index directly. The size of the PL/SQL function returning
VARCHAR is assumed to be 4000 characters. The maximum key length of an
index is dependent on block size and is around 2000 characters for the
default block size. The workaround is to explicitly specify the SUBSTR()
function when creating the index and in queries.

BUG:556122

Oracle does not support an outer join predicate that includes an attribute
reference via a scoped REF column or attribute. A workaround is to specify
the table with the scoped REF column as a degenerate derived table in the
FROM clause. For example,

SELECT ...
    FROM customers c, (SELECT * FROM orders) o
    WHERE ...

Another valid workaround is to compare the REFs instead of the customer
numbers -- it is logically equivalent since the REF uniquely identifies the
customer (similar to the customer number)

SELECT ...
    FROM customers c, orders o
    WHERE ref(c) = o.cust(+)
          and o.orderdate is null

32.2 KNOWN ODMA BUGS
--------------------

Bug:1352192

Trace files occur when some PL/SQL format changes happen while migrating
from 8.1.6 to 8.1.7. There is a trigger in JServer which gets executed at
start-up and this causes a PL/SQL block to get executed in 8.1.7 before it
is upgraded to the new PL/SQL format. A similar trace can also be generated
even if Jserver hasn't been installed and a user trigger exists for
startup.

Fix/ workaround:

ODMA 8.1.7 will bring up a dialog to let the user know that JServer is
detected in the database and the user needs to manually upgrade it. A
similar message is given for Time Series, VIR and interMedia.
