ORA-00955: 기존의 객체가 이름을 사용하고 있습니다. 해결하기 (ORA-00955: name is already used by an existing object)

ORA-00955: 기존의 객체가 이름을 사용하고 있습니다. (ORA-00955: name is already used by an existing object) 오류는 오라클 객체 생성 구문에서 기존 객체와 동일한 이름을 설정하는 경우에 발생하는 오류입니다.

ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

오라클 객체는 테이블, 뷰, 인덱스, 시노님, 시퀀스, 패키지, 펑션, 프로시저 등이 있으며 어떠한 것이든 기존의 객체가 이름을 사용하고 있다면 상기와 같은 오류가 동일하게 발생합니다. 즉, "기존의 테이블이 이름을 사용하고 있습니다." 또는 "기존의 인덱스가 이름을 사용하고 있습니다."와 같은 식으로 안내하지는 않고 모두 객체로 표현해드립니다.

ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

테이블

SQL> CREATE TABLE USERNAME.TABLENAME (C NUMBER);
1행에 오류:
ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

SQL> CREATE VIEW USERNAME.VIEWNAME AS SELECT * FROM TABLENAME;
1행에 오류:
ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

인덱스

SQL> CREATE INDEX USERNAME.INDEXNAME ON USERNAME.TABLENAME (C);
1행에 오류:
ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

시노님

SQL> CREATE SYNONYM USERNAME.SYNONYMNAME FOR TABLENAME;
1행에 오류:
ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

시퀀스

SQL> CREATE SEQUENCE USERNAME.SEQUENCENAME;
1행에 오류:
ORA-00955: 기존의 객체가 이름을 사용하고 있습니다.

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

1. 드랍 이후 크리에이트를 시도하려고 했다면, 드랍 대상이 된 오브젝트의 삭제 여부를 다시 확인합니다.

2. 스키마를 확인합니다.

3. 생성 대상 오브젝트의 타입이 맞는지 확인합니다.

4. 경우에 따라 OR REPLACE 구문(패키지, 펑션, 프로시저, 뷰 등)을 추가하여 생성 오류를 방지합니다.

이 정도를 확인하면 해결할 수 있을 것입니다.

댓글