재정의 | NOOVERRIDEDUPS
유효 기간
Replicat
설명
OVERRIDEDUPS 및 NOOVERRIDEDUPS 매개변수를 사용하여 양쪽 레코즈의 키가 같을 경우 Replicat가 대상 데이터베이스의 기존 레코드를 복제된 레코드로의 겹쳐쓸지 여부를 제어합니다.
-
OVERRIDEDUPS는 기존 레코드를 덮어씁니다. 대상 테이블을 로드하기 전에 truncate하지 않으려는 초기 로드 또는 신뢰할 수 있는 소스가 있는 대상 테이블의 재동기화에 사용할 수 있습니다.OVERRIDEUPS와 함께SQLDUPERR매개변수를 사용하여 중복INSERT작업에 대해 데이터베이스에서 반환되는 숫자 오류 코드를 지정합니다. 자세한 내용은 "SQLDUPERR"을 참조하십시오. -
기본값인
NOOVERRIDEDUPS는 기존 레코드를 덮어쓰지 않고 중복 레코드 오류를 생성합니다.SQLEXEC절과 함께 예외MAP문을 사용하여 오류에 대한 응답을 시작할 수 있습니다. 그렇지 않으면 트랜잭션이 비정상 종료될 수 있습니다.예외 맵을 사용할 수 없을 때 Replicat가 비정상 종료되지 않도록 중복 레코드를 무시하려면 다음과 유사한
REPERROR매개변수 문을 지정하십시오. 여기서<error>는 기본 키 제약 조건 오류에 대한 데이터베이스 오류 번호입니다.
REPERROR (<error>, IGNORE)
예를 들어, Oracle AI Database에 대한 설명은 다음과 같습니다.
REPERROR (1, IGNORE)
Replicat는 무시된 중복 레코드를 폐기 파일에 기록합니다.
OVERRIDEDUPS 또는 NOOVERRIDEDUPS를 적용하려는 TABLE 또는 MAP 문 앞에 배치합니다. TABLE 또는 MAP 문의 여러 그룹에 대해 다른 규칙을 생성할 수 있습니다. 매개변수는 토글 역할을 합니다. 하나는 다른 하나가 발생할 때까지 후속 TABLE 또는 MAP 문에 적용됩니다.
OVERRIDEDUPS는 HANDLECOLLISIONS를 사용할 때 자동으로 사용으로 설정됩니다. 자세한 내용은 "HANDLECOLLISIONS | NOHANDLECOLLISIONS"를 참조하십시오.
WARNING: OVERRIDEDUPS가 적용되는 경우 여러 Replicat 프로세스에서 레코드가 시간순으로 처리되지 않을 수 있습니다.
기본값
NOOVERRIDEDUPS
구문
OVERRIDEDUPS | NOOVERRIDEDUPS