데이터베이스 객체 이름에 와일드카드 사용

특정 데이터베이스에 대해 지원되는 경우 전체 객체 이름의 모든 부분에 와일드카드를 사용할 수 있습니다. 이러한 이름 부분은 컨테이너, 데이터베이스 또는 카탈로그 이름, 소유자(스키마 또는 데이터베이스 이름), 테이블 또는 시퀀스 이름일 수 있습니다. 객체 이름 및 와일드카드 지원 방법에 대한 자세한 내용은 해당 데이터베이스의 Oracle GoldenGate 설치 및 구성 설명서를 참조하십시오.

해당되는 경우 Oracle GoldenGate 파라미터는 두 개의 와일드카드 유형을 사용하여 하나의 명령문에서 여러 객체를 지정할 수 있도록 허용합니다.

소스 객체에 와일드카드 사용 규칙

소스 객체의 경우 별표만 사용하거나 부분 이름을 사용할 수 있습니다. 예를 들어, 다음 소스 사양이 적합합니다.

TABLE, MAP 및 SEQUENCE 매개변수는 와일드카드 확인을 위해 대소문자를 구분하고 데이터베이스의 로케일을 고려합니다. 대소문자를 구분하거나 대소문자를 구분하지 않고 생성된 데이터베이스의 경우 와일드카드는 정확한 이름과 대소문자를 일치시킵니다. 예를 들어, 데이터베이스가 대소문자를 구분하는 경우 SCHEMA.TABLE가 SCHEMA.TABLE와 일치하고, Schema.Table가 Schema.Table 등과 일치합니다. 데이터베이스가 대소문자를 구분하지 않는 경우 일치는 대소문자를 구분하지 않습니다.

동일한 데이터베이스 Instance에서 대소문자를 구분하고 대소문자를 구분하지 않는 객체 이름을 모두 포함할 수 있는 데이터베이스의 경우 대소문자를 구분하기 위해 따옴표를 사용하면 와일드카드가 다르게 작동합니다. TABLE 문에서 소스 이름에 단독으로 사용할 경우 별표가 따옴표 안에 있는지 여부에 관계없이 별표 와일드카드는 임의의 문자와 일치합니다. 다음 명령문은 동일한 결과를 생성합니다.

TABLE hr.*;
TABLE hr."*";

마찬가지로 단독으로 사용되는 물음표 와일드카드는 따옴표 안에 있는지 여부에 관계없이 모든 단일 문자와 일치합니다. 다음과 같은 결과가 나타납니다.

TABLE hr.?;
TABLE hr."?";

물음표 또는 별표 와일드카드가 다른 문자와 함께 사용되는 경우 대소문자를 구분하지 않는 문자에 적용하지만 와일드카드는 대소문자를 구분하지 않고 대소문자를 구분하지 않는 이름과 모두 일치합니다.

TABLE hr."abc*";
TABLE hr."abc?";
TABLE hr.abc*;
TABLE hr.abc?;

대상 객체에 와일드카드 사용 규칙

MAP 문의 TARGET 절에서 와일드카드를 사용할 경우 대상 객체가 대상 데이터베이스에 존재해야 합니다. 단, 새 스키마와 해당 객체를 생성할 때 복제할 수 있도록 하는 DDL 복제가 사용되는 경우에는 예외입니다.

대상 객체의 경우 별표만 사용할 수 있습니다. 별표 와일드카드가 부분 이름과 함께 사용되는 경우 Replicat는 와일드카드를 해당 소스 객체의 전체 이름으로 바꿉니다. 따라서 다음과 같은 사양은 잘못됨입니다.

HQ.T

앞의 매핑은 대상 사양의 와일드카드가 T_TEST(소스 객체의 이름)로 바뀌어 전체 대상 이름이 T_T_TESTn이 되므로 잘못된 결과를 생성합니다. 다음은 잘못된 결과를 보여줍니다.

다음 예에서는 별표 와일드카드의 올바른 사용을 보여줍니다.

MAP HQ.T_*, TARGET RPT.*;

이전 예에서는 다음과 같은 올바른 결과를 생성합니다.

대체 이름 매핑

소스 이름을 대상 이름에 매핑할 수 없는 경우 Oracle GoldenGate에 폴백 매핑 방식이 있습니다. 대소문자를 구분하는 소스 객체에 대한 대상에서 정확한 일치 항목을 찾을 수 없는 경우 Replicat는 소스 이름을 대상의 대소문자 또는 소문자(데이터베이스 유형에 따라 다름)로 매핑하려고 시도합니다. 폴백 이름 매핑은 NAMEMATCH 매개변수로 제어됩니다. 자세한 내용은 Oracle GoldenGate에 대한 매개변수 및 함수 참조를 참조하십시오.

객체 이름에서 별표 또는 질문을 리터럴로 표시

객체 이름 자체에 별표나 물음표가 포함된 경우 다음 예와 같이 전체 이름을 이스케이프하여 큰따옴표로 묶어야 합니다.

TABLE HT."\?ABC";

와일드카드 해결 방법

기본적으로 객체 이름이 와일드카드로 지정되면 소스 객체의 첫번째 행이 처리될 때 해당 객체의 해상도가 발생합니다. 반대로 객체 이름이 명시적으로 명시된 경우 프로세스 시작 시 해결됩니다. 와일드카드 분석 규칙을 변경하려면 WILDCARDRESOLVE 매개변수를 사용합니다. 기본값은 DYNAMIC입니다.

와일드카드 사양에서 객체 제외

EXCLUDEWILDCARDOBJECTSONLY, CATALOGEXCLUDE, SCHEMAEXCLUDE, MAPEXCLUDE 및 TABLEEXCLUDE 매개변수를 사용하여 와일드카드 객체 선택과 명시적 객체 제외의 사용을 결합할 수 있습니다.