Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: ORA-08103 : Object does not exist; but it is there
A good trick to recover most of the data when 1 record or 1 block is
damaged is:
- Use "SELECT ROWID FROM table"
This will use the index to get all the rowids that exist in the table.
Put these in a file.
- Use "SELECT * FROM table WHERE ROWID = :1" to select all records one
by one
This will access the data through the index.
Some records will fail, these should be in the corrupted block.
- Use "TRUNCATE TABLE table" to empty the table - Reinsert the found record. - Start thinking whether the lost records were important or not...
Doing this in SQL*Plus might be very slow due to the repeated parsing of
the statement.
A (type 4) Pro*C program will do the job nicely.
I've done this more than once.
Erwin
SightBlinder wrote:
>
> Strangest thing, when trying to query this table, I recieve this
> error. When I look the table up in dba_objects and dba_tables, it is
> there and is valid. If you describe the object, its description is
> shown. It is not a nested or object table, just a simply table with
> one composite unique index. Can not run analyze table validate
> structure command, you recieve the 08103 error, I can not perform an
> export of the table, same error, When I run db_verify against the
> datafiles where the table resides, there are no errors shown on the
> datafiles.
> When I perform a select * from table, it will run up till the 159579
> row, then bombs with the 08103 error. If I run a select column1,
> column2 from table, where column 1 and 2 are the index columns, it
> will run and return 311396 rows, which is the total row count of the
> table.
> I understand the index data is returned from the index leaf blocks,
> but I don't understand what has happened to my table's data blocks. I
> can create another table using the create table as select * from table
> where rownum <159579; but I want to know what happened and what else I
> might could do to recover the entires tables data. I don't have an
> export of just the table and the database is nearly 300 GB, so I don't
> have the luxury of building another database from backups, then export
> the table from the backup.
> Anyone's help or ideas would be appreciated.
> ~Jim
--
Erwin Dondorp
<http://www.dondorp.com/>
Received on Mon Nov 15 1999 - 00:58:24 CST