Skip to Main Content
  • Questions
  • Identify the missing object in an ora-08103 error

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Jim.

Asked: September 12, 2018 - 6:49 pm UTC

Last updated: September 13, 2018 - 2:09 am UTC

Version: 12.1.0.2

Viewed 1000+ times

You Asked

We have a large cursor that runs nightly and on a random night we get the following error from the job that calls the cursor:

180911 180019 (APPS.GAINS_COMMON,1194) Begin export_data
180911 194348 (APPS.GAINS_COMMON,4735) BEGIN export_sla
180911 205839 (APPS.GAINS_COMMON,5526) ORA-06512: at "APPS.DCRD_GAINS_COMMON", line 4744
180911 205839 (APPS.GAINS_COMMON,5527) Error in export_sla: ORA-08103: object no longer exists

Going by the timestamps, the export cursor starts at 19:43 and at 20:58 it ends with the ORA_08103 error. The problem I'm having is I can't identify the object id or name of the missing object.

I've searched the trc files created around that time but come up empty.
How can I capture the object id from a ORA-08103 error?

and Connor said...

The first thing I would do is look at line 474 of that package. Presumably that (or near to that) will be an SQL statement that will give you the potential objects concerned. If its only 1 table, then there is your answer. If there are multiple tables, then some manual assessment can assist in working out which one is the culprit.

ora-8103 is going to occur when a segment that was present when the query started is no longer present or has been relocated. So take a look at those tables and see if anyone are undergoing regulary maintenance such as truncate, or move operations.

If all else fails, you can see an error stack to collect more information when that error occurs, eg

alter session set events '8103 trace name errorstack level 3';

to get a full trace dump.

Is this answer out of date? If it is, please let us know via a Comment

More to Explore

SQL

The Oracle documentation contains a complete SQL reference.