INDEX 깨진 상태에서 키중복 DATA 삭제 방법은??? 0 2 2,464

by 손님 [Oracle 백업/복구] 중복데이터삭제 [2012.11.01 10:26:45]



A 라는 테이블이 있습니다.

데이터가 1억건이 넘는 데이터인데~

매월 이력성으로 데이터를 적재 합니다.


그러다 금일 데이터 적재를 하다 죽었습니다.

보통 SQL LOADER를 이용하여 DIRECT=TRUE 옵션으로 INSERT 시켰는데~

오늘 중복 데이터가 1건이 있다는걸 조금전에야 찾아 냈습니다.


중복된 데이터가 존재하고 있으니 INDEX를 REBUILD 해도 안될것이고...

중복된 데이터를 삭제하려고 DELETE 문을 실행하니

'ORA-01502 : 인텍스 A_PK 또는 인덱스 불할영역은 사용할수 없는 상태입니다.'

라고 나오고 있습니다.


이럴 경우 중복된 데이터를 삭제 할 수 있는 방법은 무엇인가요???


현재 테이블은 년도, 월 기준으로 파티션닝 된 테이블이고, INDEX는 3개의 컬럼으로 지정되어 있습니다.

DBA와 별도로 따로 제가 관리하고 있는 테이블인데~

DBA가 회의중이라 저 스스로 해결해 보고자 이러헤 저렇게 해보았습니다만~

아직 해결책은 찾지 못해 이렇게 글 올립니다.

조언 부탁 드립니다.

by 김정식 [2012.11.01 10:46:52]
아래 강좌를 참고하시면 될 것 같습니다. 

http://www.gurubee.net/lecture/1640

by 손님 [2012.11.01 14:00:06]
중복된 데이터 자체가 DELETE 되지 않을때의 방법을 여쭙는 글이었습니다.

(DELETE 시도하면 ORA-01502 오류가 발생합니다.)



자답을 달자면...

PK 및 INDEX를 DISABLE 시키고~

DATA를 DELETE 한 후~ 다시 PK 잡고 INDEX 살리면 됩니다.

^^*
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입