본문 바로가기
DB/Oracle

ORA-14074 분할영역 유지 작업에 분할영역 범위가 너무 적습니다.

by Tomining 2015. 4. 9.

시스템 운영 중에 ORA-14074 오류가 발생했다.


ORA-14074: 분할영역 유지 작업에 분할영역 범위가 너무 적습니다.


이는 Partition 생성시 발생하는 오류로 원인은 partition high_value를 같는(포함하는) partition이 이미 존재하기 때문이다.


예를 들어 아래와 같이 Partition을 생성한다고 하자.

ALTER TABLE SAMPLE

ADD PARTITIOIN SAMPLE_20150409 VALUES LESS THAN (TO_DATE(' 2015-04-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))


이렇게 생성했을 때, ORA-14074가 발생했다고 하자.

이는 2015-04-10 00:00:00(high_value) 값을 포함하는 partition이 이미 존재한다는 의미이다.

파티션 목록을 확인해보면 SAMPLE_20150410 이나 그 이후 파티션이 이미 만들어져있을 것이다.


파티션 목록은 아래와 같이 확인할 수 있다.

SELECT *

FROM DBA_TAB_PARTITIONS

WHERE TABLE_NAME = 'SAMPLE'


이를 해결하기 위해서는 ADD PARTITION이 아니라 SPLIT PARTITION을 해 줘야한다.

ALTER TABLE SAMPLE

SPLIT PARTITION SAMPLE_20150409 AT (TO_DATE(' 2015-04-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

INTO (PARTITION SAMPLE_20150410)

※ 이미 SAMPLE_20150410 이 만들어져있다는 가정하에 작성된 SQL이다.