MAPEXCEPTION 사용

MAPEXCEPTION는 MAP 문에서 소스 및 대상 테이블의 이름을 와일드카드로 지정할 때 적합합니다. 소스 테이블을 대상 테이블에 매핑하는 것과 동일한 일반 MAP 문에 MAPEXCEPTION 절을 배치합니다. Replicat는 모든 와일드 카드 문자 테이블에서 오류를 생성하는 모든 작업을 동일한 예외 테이블로 매핑합니다. 따라서 예외 테이블은 모든 와일드 카드 문자 테이블에 있는 모든 열의 상위 집합을 포함해야 합니다.

와일드카드 구성에서는 열을 개별적으로 매핑할 수 없으므로 COLMAP 절을 USEDEFAULTS 옵션과 함께 사용하여 와일드카드 테이블에 대한 열 매핑을 처리하고(또는 해당하는 경우 COLMATCH 매개변수 사용), 명시적 열 매핑을 사용하여 열 변환 함수 또는 SQLEXEC로 캡처된 추가 정보를 매핑합니다.

MAPEXCEPTION를 사용하는 경우 MAPEXCEPTION 절에 INSERTALLRECORDS 매개변수를 포함합니다. INSERTALLRECORDS는 모든 작업 유형이 예외 테이블에 INSERT 작업으로 적용되도록 합니다. 예외에 대한 정확한 레코드를 유지하고 예외 테이블에서 무결성 오류를 방지하려면 이 작업이 필요합니다.

이러한 매개변수에 대한 자세한 내용은 Oracle GoldenGate에 대한 매개변수 및 함수 참조를 참조하십시오.

예 9-22 MAPEXCEPTION

다음은 예외 매핑에 MAPEXCEPTION를 사용하는 방법의 예입니다. MAP 및 TARGET 절에는 와일드카드 소스 및 대상 테이블 이름이 포함됩니다. 이름이 TRX로 시작하는 테이블을 처리할 때 발생하는 예외는 지정된 매핑을 사용하여 fin.trxexceptions 테이블에 캡처됩니다.

MAP src.trx*, TARGET trg.*,
MAPEXCEPTION (TARGET fin.trxexceptions,
INSERTALLRECORDS,
COLMAP (USEDEFAULTS,
ACCT_NO = ACCT_NO,
OPTYPE = @GETENV ('LASTERR', 'OPTYPE'),
DBERR = @GETENV ('LASTERR', 'DBERRNUM'),
DBERRMSG = @GETENV ('LASTERR', 'DBERRMSG')
)
);