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
- Running a deployment script twice.
- An object of a different type with the same name.
- A leftover object from an earlier failed installation.
- Connecting to a different schema than intended.
How to fix ORA-00955
- Find what already holds the name:
USER_OBJECTS. - If it is obsolete, drop it; otherwise pick another name.
- For views, procedures and packages use
CREATE OR REPLACE. - On Oracle 23ai,
CREATE TABLE IF NOT EXISTSmakes 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.