ORA-02303: 유형과/또는 테이블이 의존하고 있는 유형을 삭제하거나 바꿀 수 없습니다 (ORA-02303: cannot drop or replace a type with type or table dependents)

ORA-02303: 유형과/또는 테이블이 의존하고 있는 유형을 삭제하거나 바꿀 수 없습니다

'ORA-02303: 유형과/또는 테이블이 의존하고 있는 유형을 삭제하거나 바꿀 수 없습니다' 오류는 설명하는 바와 같이 타입을 삭제하거나 대체하려고 할 때에 발생합니다. 그리하여 해당 타입이 의존하고 있는 타입 또는 테이블에 대한 종속성을 정리하여 해결할 수 있습니다. 해결 방법은 크게 2가지가 있습니다.

의존하고 있는 유형, 테이블을 삭제하는 방법

타입에 의존하고 있는 모든 타입, 테이블을 삭제하여 처리하는 방법입니다. 그리고 유효한 옵션으로 명령어를 재실행하면 정상적으로 실행이 될 것입니다.

DROP TABLE USER_NAME.TABLE_NAME CASCADE CONSTRAINTS;

FORCE 옵션을 사용하는 방법

DROP TYPE FORCE~ 명령어로 삭제를 처리하는 것이나, 추천하지 않습니다. 의존하고 있는 테이블이 여전히 남아있기에 조회를 시도하는 경우 다른 예외 메시지가 나타날 것이기 때문입니다.

ORA-02303 발생 예제 소스

ORA-02303: cannot drop or replace a type with type or table dependents 오류가 발생하는 예제 소스입니다. 

CREATE OR REPLACE TYPE USER_NAME.TYPE_NAME AS OBJECT (
  COLUMN_NAME VARCHAR2(100)  
);
/

CREATE TABLE USER_NAME.TABLE_NAME OF USER_NAME.TYPE_NAME 
TABLESPACE TABLESPACE_NAME
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING 
NOCOMPRESS 
NOCACHE
NOPARALLEL
MONITORING;

--ORA-02303: cannot drop or replace a type with type or table dependents
DROP TYPE USER_NAME.TYPE_NAME;
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗