Oracle errors explained
What 57 common ORA- errors mean, what usually causes them, and what to check first.
- ORA-00001: unique constraint (%s.%s) violatedAn INSERT or UPDATE tried to store a duplicate value in a primary key or unique index.
- ORA-00018: maximum number of sessions exceededThe instance reached its SESSIONS limit. A connection pool that opens sessions faster than it closes them is the usual source.
- ORA-00020: maximum number of processes (%s) exceededThe instance reached its PROCESSES limit. Every dedicated server connection and background process counts toward it.
- ORA-00054: resource busy and acquire with NOWAIT specified or timeout expiredDDL or a LOCK TABLE ... NOWAIT needed a lock that another transaction holds.
- ORA-00060: deadlock detected while waiting for resourceTwo sessions each waited for a row the other held. Oracle rolled back one statement, not the whole transaction.
- ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.The archiver can't write the next archived log, almost always because the Fast Recovery Area or archive destination is full.
- ORA-00600: internal error code, arguments: [%s], [%s], ...An internal Oracle error, usually a bug. The first argument identifies the code path that failed.
- ORA-00604: error occurred at recursive SQL level %sSQL that Oracle ran on your behalf failed: a dictionary query, a trigger, auditing or space management.
- ORA-00904: "%s": invalid identifierA column name is misspelled, doesn't exist, or was created in mixed case with double quotes.
- ORA-00942: table or view does not existThe object is missing, lives in another schema, or you lack privileges on it. Oracle reports a missing privilege the same way as a missing object.
- ORA-01000: maximum open cursors exceededA session hit OPEN_CURSORS, usually because the application doesn't close statements or result sets.
- ORA-01017: invalid username/password; logon deniedWrong credentials, a case mismatch in the password, the wrong database or PDB, or a missing password file entry for SYSDBA. 23ai prints this as…
- ORA-01031: insufficient privilegesA system or object privilege is missing. Privileges granted through roles don't count inside definer's-rights PL/SQL or views owned by another schema.
- ORA-01033: ORACLE initialization or shutdown in progressThe database is mounting, opening or closing. A database left in MOUNT, such as a standby or a failed open, also returns this.
- ORA-01034: ORACLE not availableThe instance isn't running, or ORACLE_SID or ORACLE_HOME points at a different instance. Often paired with ORA-27101.
- ORA-01089: immediate shutdown or close in progress - no operations are permittedA SHUTDOWN IMMEDIATE or PDB close is under way.
- ORA-01110: data file %s: '%s'A companion message that names the file involved in the error printed just above it.
- ORA-01113: file %s needs media recoveryA datafile is older than the rest of the database: it was restored, taken offline, or left in backup mode.
- ORA-01157: cannot identify/lock data file %s - see DBWR trace fileDBWR can't find or open a datafile: it's missing, renamed, has the wrong permissions, or its file system or ASM disk group isn't mounted.
- ORA-01194: file %s needs more recovery to be consistentOPEN RESETLOGS was attempted before enough redo was applied after a restore.
- ORA-01422: exact fetch returns more than requested number of rowsA PL/SQL SELECT ... INTO returned more than one row.
- ORA-01489: result of string concatenation is too longA concatenation or LISTAGG passed the VARCHAR2 limit (4000 bytes unless MAX_STRING_SIZE is EXTENDED).
- ORA-01555: snapshot too old: rollback segment number %s with name "%s" too smallA long query needed undo to rebuild an older version of a block, and that undo had already been overwritten.
- ORA-01578: ORACLE data block corrupted (file # %s, block # %s)A block failed its checks when read. Storage or I/O path problems are the common source.
- ORA-01652: unable to extend temp segment by %s in tablespace %sA sort, hash join or temporary table needed more temp space. If the message names a permanent tablespace, it came from an index build or CREATE TABLE…
- ORA-01653: unable to extend table %s.%s by %s in tablespace %sThe tablespace has no free extent large enough and its datafiles can't autoextend further.
- ORA-01654: unable to extend index %s.%s by %s in tablespace %sSame as ORA-01653, for an index.
- ORA-01688: unable to extend table %s.%s partition %s by %s in tablespace %sSame as ORA-01653, for a table partition.
- ORA-01691: unable to extend lob segment %s.%s by %s in tablespace %sSame as ORA-01653, for a LOB segment.
- ORA-01722: invalid numberA string that isn't a number was converted to one, often by an implicit conversion in a comparison.
- ORA-01861: literal does not match format stringA date string didn't match the format Oracle expected, usually the session's NLS_DATE_FORMAT.
- ORA-01950: no privileges on tablespace '%s'The owner of the object has no quota on the tablespace.
- ORA-02291: integrity constraint (%s.%s) violated - parent key not foundA child row references a parent key value that doesn't exist.
- ORA-04021: timeout occurred while waiting to lock objectA compile or DDL needed a library cache lock on an object that running sessions have pinned.
- ORA-04030: out of process memory when trying to allocate %s bytes (%s,%s)A server process couldn't get more private memory from the operating system: OS limits, a real memory shortage, or a runaway PL/SQL collection.
- ORA-04031: unable to allocate %s bytes of shared memory ("%s","%s","%s","%s")The shared pool or large pool couldn't find a large enough free chunk, often from literal SQL fragmenting the pool or a pool that's too small.
- ORA-04068: existing state of packages%s%s%s has been discardedA package was recompiled while a session held its state (package variables).
- ORA-06512: at %sline %sA line of the PL/SQL call stack, not an error by itself.
- ORA-08102: index key not found, obj# %s, file %s, block %s (%s)An index and its table disagree, a logical corruption.
- ORA-12154: TNS:could not resolve the connect identifier specifiedThe alias isn't in the tnsnames.ora the client is reading, is misspelled, or NAMES.DIRECTORY_PATH in sqlnet.ora excludes TNSNAMES.
- ORA-12170: TNS:Connect timeout occurredThe client couldn't reach the listener in time: a firewall dropping packets, an unreachable host, or a network problem.
- ORA-12505: TNS:listener does not currently know of SID given in connect descriptorThe connect string asks for a SID that the listener doesn't have registered.
- ORA-12514: TNS:listener does not currently know of service requested in connect descriptorThe service isn't registered: the database is down, the PDB is closed, the service isn't started, or LOCAL_LISTENER points elsewhere.
- ORA-12519: TNS:no appropriate service handler foundThe listener blocked new connections, usually because the instance is at or near its PROCESSES limit.
- ORA-12537: TNS:connection closedThe connection dropped during the handshake: valid node checking, the PROCESSES limit, a firewall, or permissions on the oracle binary.
- ORA-12541: TNS:no listenerNothing is listening on that host and port.
- ORA-16014: log %s sequence# %s not archived, no available destinationsThe archiver has no valid destination to write to, because they're full or in error.
- ORA-19809: limit exceeded for recovery filesThe Fast Recovery Area reached DB_RECOVERY_FILE_DEST_SIZE. Usually reported with ORA-19804.
- ORA-19815: WARNING: db_recovery_file_dest_size of %s bytes is %s%% used, and has %s remaining bytes available.An alert log warning that the Fast Recovery Area is filling up.
- ORA-28030: Server encountered problems accessing LDAP directory serviceThe database couldn't reach or log in to the directory: a domain controller is down or unreachable on port 636, the wallet or dsi.ora is missing or…
- ORA-28274: No ORACLE password attribute corresponding to user nickname existsWith Active Directory logins, the user's AD account has no Oracle password verifier yet: they aren't in the ORA_VFR_12C group, or haven't changed…
- ORA-28000: the account is lockedLocked by an administrator or by too many failed logins under its profile.
- ORA-28001: the password has expiredThe profile's PASSWORD_LIFE_TIME passed.
- ORA-28002: the password will expire within %s daysThe account is in its grace period.
- ORA-30036: unable to extend segment by %s in undo tablespace '%s'Undo is full of active (uncommitted) undo, or of unexpired undo when retention is guaranteed.
- ORA-65011: Pluggable database %s does not exist.The PDB name is wrong or the PDB isn't in this CDB.
- ORA-65096: invalid common user or role nameYou tried to create a user or role in the CDB root without the C## prefix.