ORA-00955: name is already used by an existing object (이름이 기존 개체에서 이미 사용 중)
Oracle의미
생성하려는 개체(테이블, 인덱스, 뷰, 시퀀스, 시노님 등)의 이름을 같은 스키마의 다른 개체가 이미 사용하고 있다. Oracle에서 개체 이름은 스키마 내에서 고유하며, 테이블, 뷰, 시퀀스처럼 유형이 달라도 같은 네임스페이스를 공유한다.
원인
CREATE 문에서 선택한 이름이 기존 개체와 충돌한다. 흔한 함정: 테이블과 같은 이름으로 시퀀스나 뷰를 생성하려 함, 또는 자동 생성된 인덱스 이름(예: 기본 키 인덱스)이 지정한 이름과 충돌함.
해결 방법
다른 이름을 선택하거나 충돌하는 개체를 제거한다. 어떤 개체가 이름을 사용하는지 확인하려면: SELECT object_type, object_name FROM user_objects WHERE object_name = 'YOUR_NAME'; 정말 교체하려면 기존 개체를 DROP한다(먼저 데이터를 백업). CREATE OR REPLACE는 뷰, 시노님, 타입, PL/SQL 개체(프로시저, 함수, 패키지, 트리거)에 사용할 수 있으며 테이블, 인덱스, 시퀀스에는 없다.
같은 데이터베이스의 다른 항목
- ORA-01536space quota exceeded for tablespace
- direct path read대기: buffer cache를 거치지 않고 PGA로 블록을 직접 읽는 세션
- latch: cache buffers chains대기: cache buffers chains latch 경합
- ORA-02449unique/primary keys in table referenced by foreign keys (테이블의 고유/기본 키가 외래 키에서 참조됨)
- ORA-01950no privileges on tablespace 'name' (테이블스페이스에 대한 권한 없음)
- ORA-01110data file N: 'path'
- ORA-16038log N sequence# M cannot be archived