본문 바로가기

oracle165

[에러 해결] PK 중복 관련 ORA-00001: unique constraint primary key violated ORA-00001: unique constraint primary key violated 테이블 컬럼작업을 하는 중 데이터가 들어있는 테이블이 있어서, 데이터 백업 후 삭제 -> 테이블 작업 -> 데이터 복구 순서로 작업을 수행하려고 했습니다. 작업 후 복구 중에 데이터가 들어와서 기존 데이터와 중복되는 상황이 발생! 그래서 기존 데이터가 하나도 안들어가는 경우가 발생하였습니다. 여러 테이블의 작업을 수행했는데, 두가지 방법으로 해결하였습니다. 1. INSERT 시 exist 문을 활용하여 PK중복제거 한 데이터만 INSERT하기 2.임시 테이블을 만들어 임시테이블에 INSERT 후 RENAME 하기. 아래는 최대한 비슷하게 구성한 테스트 시나리오입니다. 준비 테스트 테이블 생성. CREATE TABLE.. 2023. 1. 13.
Oracle 데이터 중복값 쿼리로 확인하기 테이블 내에서 중복값을 확인해야 할 일이 있어서 아래글을 참고하여 확인 후에, 제가 한번 더 테스트하여 정리하고자 글을 올립니다. 출처 : https://gent.tistory.com/485 [Oracle] 오라클 중복 데이터를 찾는 2가지 방법 오라클에서 중복 데이터를 추출하거나 찾기 위해서는 GROUP BY 절과 집계 함수를 사용하거나, OVER 절과 분석함수를 사용하는 방법이 있다. GROUP BY 절을 사용할 경우 중복 칼럼에 대한 건수만 조회 gent.tistory.com 제가 겪었던 상황은 특정 파티션테이블의 인덱스가 UNUSABLE상태로 빠져있어서 rebuild를 시도했는데, 중복값이 있어서 rebuild가 안되는 상황이었습니다. 그래서 실제로 데이터가 중복값이 있는지 확인해보았습니다. 저는.. 2022. 12. 8.
ora-14120 incompletely specified partition bound for a DATE column 파티션 테이블 생성 중 발생한 에러입니다. 파티션을 나누는 기준에 DATE 컬럼이었고, 그 DATE 컬럼에 문제가 있을 때 발생되었습니다. 저의 경우에는 SYYYY-MM-DD HH24:MI:SS의 형식이 잘못되어서 난 에러였습니다. 아래는 ora 14120에 대한 설명입니다. 14120, 00000, "incompletely specified partition bound for a DATE column" // *Cause: An attempt was made to use a date expression whose format // does not fully (i.e. day, month, and year (including century)) // specify a date as a partition bo.. 2022. 12. 6.
[split] maxvalue가 있는 range 파티션에 다음 파티션 추가하기 월별로 파티션이 생성되는 테이블에서 그다음 파티션을 추가하려면 add partition 명령어를 사용합니다. 하지만 maxvalue가 설정되어 있는 경우도 자주 볼 수 있는데요, 이경우에 add partition을 하면 ora 에러가 발생합니다. ORA-14074: partition bound must collate higher than that of the last partition 마지막 파티션이 존재하므로 무조건 그거보다 높게 설정해야 한다는 뜻입니다. 하지만 마지막 파티션이 maxvalue인 경우에는 그거보다 높은 값이 없습니다. 그래서 maxvalue를 split하여 값도 나누고 원하는 월 파티션을 추가하는 방법이 있습니다. 1.테이블 생성 CREATE TABLE PARTITION_TEST ( .. 2022. 11. 11.