Oracle ORA- Error Codes

Instantly look up Oracle ORA- errors with cause, action and severity.

Searchable reference for the most common Oracle Database ORA- and PLS- error codes, each with its message, root cause and the recommended corrective action. Runs entirely in your browser.

What is the difference between ORA- and PLS- errors?

ORA- codes are raised by the Oracle Database server during SQL execution or operation, such as ORA-00942 for a missing table. PLS- codes are raised by the PL/SQL compiler, such as PLS-00201 for an undeclared identifier, and usually indicate a code-level problem.

This is a searchable reference for the Oracle Database error codes developers hit most often — both the runtime ORA- codes raised by the server and the PLS- codes raised by the PL/SQL compiler. Each entry pairs the message with its official cause and the recommended action, so you can go from a stack trace to a fix without leaving the page.

How it works

Oracle errors are prefixed and zero-padded: ORA-00942, ORA-01017, PLS-00201. The number identifies the condition; the accompanying message describes it. This tool normalises your input, so searching ORA-00942, ora-942 or 942 all find the same entry, and you can also search by any word in the message. For each match it shows the Cause (why Oracle raised it) and the Action (how to resolve it), following the structure of Oracle’s own error reference.

Categories at a glance

The codes cluster into a few groups. SQL and object errors: ORA-00904 invalid identifier, ORA-00942 missing table/view, ORA-00955 name already used. Constraint and data errors: ORA-00001 unique violation, ORA-01400 NULL into NOT NULL, ORA-02291 parent key not found. PL/SQL runtime: ORA-01403 no data found, ORA-01422 exact fetch returns too many rows. Connection and resource: ORA-01017 logon denied, ORA-12154 TNS resolve failure, ORA-04031 shared memory.

Example

A common pairing in application logs:

ORA-01403: no data found
ORA-06512: at "APP.GET_USER", line 12

ORA-01403 means a SELECT ... INTO in PL/SQL returned zero rows; the ORA-06512 line simply points to where it happened. The fix is to handle the NO_DATA_FOUND exception or guard the query so it always returns a row. Everything here runs in your browser; nothing is uploaded.