StaticBinder 유틸리티는 항상 나열된 순서대로
옵션 파일의 엔트리를 처리합니다. 옵션 파일에
pureQueryXML 파일의 명령문 세트에 대한 엔트리와
전체 pureQueryXML 파일에 대한 엔트리가 둘 다 있는 경우, 엔트리가 표시되는 순서가
해당 엔트리의 출력을 결정합니다.
명령문 세트에 대한 엔트리는 다음과 유사합니다.
file.pdqxml:base-package-name
패키지의 기본 이름은
pureQueryXML 파일에서 패키지를 설명하는
package
요소의
name 속성 값입니다.
기본 이름은 다음 두 파트로 구성됩니다.
- 루트 패키지 이름
- Configure 유틸리티가 루트 패키지 이름에 추가한
문자(Configure 유틸리티가 pureQueryXML 파일을
마지막으로 처리할 때 sqlLimit 옵션의 값으로 인해)
다음 두 섹션의
예는 다음 오브젝트를 사용합니다.
- captureFile.pdqxml
- 이 pureQueryXML 파일에는 기본 패키지 이름이
PKGA, PKGB, PKGC 및 PKGD인 네 개의 명령문 세트가 있습니다. 각각의 명령문 세트에는
TABLE1 테이블을 사용하는 SQL문이 있습니다. 이 모든
SQL문에서, TABLE1은 schema-name.TABLE1이 아니라 TABLE1로 참조됩니다.
옵션 파일의 각 엔트리는 -bindOptions 옵션을 사용하여
QUALIFIER 옵션을 지정합니다. 이 옵션은 스키마 이름 없이 참조된
테이블의 스키마 이름을 판별합니다.
- captureFile.pdqxml:PKGA
- 이 명령문 세트에는 특정 옵션이 필요하므로, 옵션 파일에
별도의 엔트리를 가지고 있습니다.
이 예의 경우,
분리 수준을 지정하지 않고 명령문 세트를 바인드할 때 StaticBinder
유틸리티가 네 개의 패키지(분리 수준마다 하나의 패키지)를 작성한 것을
생각해보십시오. PKGF에 대해 StaticBinder를 실행하였지만
분리 수준을 지정하지 않았다고 가정합니다. StaticBinder 유틸리티는
PKGF1, PKGF2, PKGF3 및 PKGF4 패키지를 작성합니다. 추가된 각각의 번호는
패키지의 분리 수준을 표시합니다.
결과가 하나의 PKGD 버전인 예
- 이 예에서, StaticBinder 유틸리티는 먼저 규정자가
TESTSCHEMA인 pureQueryXML 파일 captureFile.pdqxml의
모든 명령문 세트를 바인드합니다. 여기에는 기본 패키지 이름이
PKGA인 명령문 세트가 포함됩니다. 그런 다음 StaticBinder 유틸리티는 다시
기본 패키지 이름이 PKGA인 명령문 세트를 바인드하지만 이 때 규정자
PRODUCTIONSCHEMA를 사용합니다. 두 번째 엔트리에 대해 바인드된 패키지는
첫 번째 엔트리에 대해 바인드된 동일 이름의 패키지를 대체합니다.
C:\dir\captureFile.pdqxml = -bindOptions "QUALIFIER TESTSCHEMA"
C:\dir\captureFile.pdqxml:PKGA = -bindOptions "QUALIFIER PRODUCTIONSCHEMA"
최종
결과:
- PRODUCTIONSCHEMA.TABLE1을 사용하는 패키지: PKGA1, PKGA2, PKGA3,
PKGA4
- TESTSCHEMA.TABLE1을 사용하는 패키지: PKGB1, PKGB2, PKGB3, PKGB4,
PKGC1, PKGC2, PKGC3, PKGC4, PKGD1, PKGD2, PKGD3, PKGD4
- 이 예에서, StaticBinder 유틸리티는 PRODUCTIONSCHEMA 규정자를 사용하여
기본 패키지 이름 PKGA와 연관된 패키지를 바인드한 후 TESTSCHEMA 규정자를 사용하여
captureFile.pdqxml의 모든 패키지를 바인드합니다.
두 번째 엔트리에 대해 바인드된 패키지는
첫 번째 엔트리에 대해 바인드된 동일 이름의 패키지를 대체합니다.
C:\dir\captureFile.pdqxml:PKGA = -bindOptions "QUALIFIER PRODUCTIONSCHEMA"
C:\dir\captureFile.pdqxml = -bindOptions "QUALIFIER TESTSCHEMA"
최종
결과:
- 어떤 패키지도 PRODUCTIONSCHEMA.TABLE1을 사용하지 않음
- TESTSCHEMA.TABLE1을 사용하는 패키지: PKGA1, PKGA2, PKGA3, PKGA4,
PKGB1, PKGB2, PKGB3, PKGB4, PKGC1, PKGC2, PKGC3, PKGC4, PKGD1, PKGD2,
PKGD3, PKGD4
그러나 두 번째 행에서 -differenceOnly
옵션을 사용하여 StaticBinder 유틸리티가 PKGA를 다시 바인드하지 않도록
할 수 있습니다. StaticBinder는 해당되는 패키지를 리바인드하지 않습니다.
패키지가 이미 동일한 콜렉션 이름, 패키지 이름 및 일관성 토큰으로 데이터베이스에
존재하기 때문입니다.
C:\dir\captureFile.pdqxml:PKGA = -bindOptions "QUALIFIER PRODUCTIONSCHEMA"
C:\dir\captureFile.pdqxml = -bindOptions "QUALIFIER TESTSCHEMA" -differenceOnly TRUE
최종
결과:
- PRODUCTIONSCHEMA.TABLE1을 사용하는 패키지: PKGA1, PKGA2, PKGA3,
PKGA4
- TESTSCHEMA.TABLE1을 사용하는 패키지: PKGB1, PKGB2, PKGB3, PKGB4,
PKGC1, PKGC2, PKGC3, PKGC4, PKGD1, PKGD2, PKGD3, PKGD4
결과가 두 개의 PKGD 버전인 예
- 이 예에서, StaticBinder 유틸리티는 먼저
pureQueryXML 파일 captureFile.pdqxml의
모든 명령문 세트를 처리합니다. 이 파일에는 기본 패키지 이름이 PKGA인 명령문 세트가
포함되어 있습니다. StaticBinder는 미확약 읽기 분리 수준에서
네 개의 패키지를 바인드하며, 각 패키지 이름에는 번호 1이 추가됩니다.
그런 다음 StaticBinder 유틸리티는 다시
패키지 PKGA를 바인드하지만 이 때 분리 수준으로 커서 안정성을 사용합니다.
유틸리티는 패키지 이름에 번호 2를 추가합니다.
C:\dir\captureFile.pdqxml = -isolationLevel UR
C:\dir\captureFile.pdqxml:PKGA = -isolationLevel CS
최종
결과:
- PKGA1, PKGB1, PKGC1, PKGD1
- PKGA2
- 이 예는 커서 안정성 분리 수준을 사용하여 패키지 PKGA를
바인드한 후 미확약 읽기 분리 수준을 사용하여 captureFile.pdqxml의
모든 패키지를 바인드합니다.
C:\dir\captureFile.pdqxml:PKGA = -bindOptions "QUALIFIER PRODUCTIONSCHEMA"
C:\dir\captureFile.pdqxml = -bindOptions "QUALIFIER TESTSCHEMA"
최종
결과:
- PRODUCTIONSCHEMA.TABLE 1을 사용하는 패키지: PKGA2
- TESTSCHEMA.TABLE1을 사용하는 패키지: PKGA1, PKGB1, PKGC1, PKGD1
그러나 두 번째 행에서 -differenceOnly
옵션을 사용하여 StaticBinder 유틸리티가 PKGA를 다시 바인드하지 않도록
할 수 있습니다. StaticBinder는 해당되는 패키지를 리바인드하지 않습니다.
패키지가 이미 동일한 콜렉션 이름, 패키지 이름 및 일관성 토큰으로 데이터베이스에
존재하기 때문입니다.
C:\dir\captureFile.pdqxml:PKGD = -bindOptions "QUALIFIER PRODUCTIONSCHEMA"
C:\dir\captureFile.pdqxml = -bindOptions "QUALIFIER TESTSCHEMA" -differenceOnly TRUE
최종
결과:
- PRODUCTIONSCHEMA.TABLE 1을 사용하는 패키지: PKGA2
- TESTSCHEMA.TABLE1을 사용하는 패키지: PKGB1, PKGC1, PKGD1