English

Error: ORA-00600: internal error

Error Message

When describing or dropping a table with a user-defined type column table, the following error may occur:

"ORA-00600:internal error".

This can happen with any user-defined type, including the ESRI Spatial Type for Oracle (ST_Geometry), under certain circumstances.

Cause

Dropping a user that created a table in a second user's schema with a user-defined type owned by a third user can make the table indescribable.

Below is the scenario that causes this problem:

1. User A creates a type, and creates a public synonym for the type so other users are not required to qualify the type with the owner name when creating new tables.

2. User B, who has privileges to create tables in other schemas, creates a new table in user C's schema. The table includes a column whose type is declared, using the non-qualified public synonym of the type owned by user A.

3. User B is dropped.

4. Attempting to describe the table owned by user C results in the following error:

"ORA-00600: internal error code, arguments: [16688], [nnnnnnn], [], [], [], [], [], []".

5. Attempting to drop the table may also result in the following error: "ORA-00600: internal error".

Notice that user A, the owner of the type, was not dropped. The type, and the synonym for the type were not dropped either. Only the user, such as user B that created the table in another user's, such as user C's schema, was dropped.

Solution or Workaround

When the type is qualified with the name of its owner during creation of the table, this problem does not occur.

If a second table is created from the inaccessible table using a CREATE TABLE NEWTABLE AS SELECT * FROM OLDTABLE, the second table shows the type as owned by its real owner, and therefore does not encounter the same problem.

'Describe' and 'drop table' appear to be the only operations affected by this problem. As mentioned above, the indescribable table can still be queried with SELECT. UPDATE, INSERT and DELETE also work.

A workaround is to qualify all user-defined types with their owner name when creating a table in another schema.