Home
All Oracle Error Codes
Oracle DBA Forum

Frequent Oracle Errors

TNS:could not resolve the connect identifier specified
Backtrace message unwound by exceptions
invalid identifier
PL/SQL compilation error
internal error
missing expression
table or view does not exist
end-of-file on communication channel
TNS:listener unknown in connect descriptor
insufficient privileges
PL/SQL: numeric or value error string
TNS:protocol adapter error
ORACLE not available
target host or object does not exist
invalid number
unable to allocate string bytes of shared memory
resource busy and acquire with NOWAIT specified
error occurred at recursive SQL level string
ORACLE initialization or shutdown in progress
archiver error. Connect internal only, until freed
snapshot too old
unable to extend temp segment by string in tablespace
Credential retrieval failed
missing or invalid option
invalid username/password; logon denied
unable to create INITIAL extent for segment
out of process memory when trying to allocate string bytes
shared memory realm does not exist
cannot insert NULL
TNS:unable to connect to destination
remote database not found ora-02019
exception encountered: core dump
inconsistent datatypes
no data found
TNS:operation timed out
PL/SQL: could not find program
existing state of packages has been discarded
maximum number of processes exceeded
error signaled in parallel query server
ORACLE instance terminated. Disconnection forced
TNS:packet writer failure
see ORA-12699
missing right parenthesis
name is already used by an existing object
cannot identify/lock data file
invalid file operation
quoted string not properly terminated

Re: Identifying the content of a corrupted block in system tablespace

Jeremiah Wilton

2005-01-06

Replies:
On Thu, 6 Jan 2005, Vlado Barun wrote:

> I have a corrupted block in the system tablespace.
> I used the standard query to identify the object that the block but it
> failed:

A couple things off the top of my head:

There is probably more than one row in the corrupted block, since most
blocks have a few rows and OBJ$ is not that wide.

The SYS.I_OBJ2 index has object names in it. It is possible that you
could compose a select statement that would read only from the index
without accessing the table. You could exclude all rows that don't
appear in valid blocks in OBJ$. You would be left with the columns in
SYS.I_OBJ2 that are in the corrupted block of OBJ$. You might have to
fiddle with the query to get the optimizer to do exactly what you
want.

You could also dump the contents of the corrupted block and see if you
could make heads or tails of it. Unfortunately unless you're very
good at data storage internals you can't be sure if you are looking at
deleted or pre-updated data, but OBJ$ doesn't get that much of that in
most systems.

So don't head up any rivers in Georgia backcountry yet. There may be
hope. Let me know if you can't figure out how to do any of this.

--
Jeremiah Wilton
ORA-600 Consulting
Emergencies - Seminars - Hiring
http://www.ora-600.net
--
http://www.freelists.org/webpage/oracle-l