Oracle errors

ORA-00955: name is already used by an existing object

ORA-00955: name is already used by an existing object

An object with that name already exists in the schema. Tables, views, sequences, synonyms and most other objects share one namespace, so the existing object may be of another type. Rename, drop it, or make the script safe to re-run.

What ORA-00955 means

Within a schema, tables, views, sequences, private synonyms, procedures, functions and packages share a single namespace. So CREATE TABLE orders also fails if a view or synonym named ORDERS exists. Indexes and constraints have namespaces of their own, but their names must still be unique within them.

Common causes of ORA-00955

How to fix ORA-00955

  1. Find what already holds the name: USER_OBJECTS.
  2. If it is obsolete, drop it; otherwise pick another name.
  3. For views, procedures and packages use CREATE OR REPLACE.
  4. On Oracle 23ai, CREATE TABLE IF NOT EXISTS makes the script re-runnable; on older releases check the data dictionary first.

ORA-00955 example

Who is using the name?

SELECT object_type, status, created
  FROM user_objects
 WHERE object_name = 'ORDERS';

In SQLlightspeed

When a statement fails, SQLlightspeed’s error panel shows the error code with a plain-language explanation and a suggestion for what to do next, together with Oracle’s own message and a link to Oracle’s documentation — for this error and dozens of other common ones.

Related errors

ORA-00942ORA-00001ORA-01031 All Oracle errors →

Oracle documentation for ORA-00955. Oracle is a registered trademark of Oracle Corporation. SQLlightspeed is not affiliated with Oracle.