StaticBinder ユーティリティーはオプション・ファイル内の項目を、リストされる順序で常に処理します。オプション・ファイルに、pureQueryXML ファイル内のステートメント・セットに関する項目と、その pureQueryXML ファイル全体に関する項目の両方が含まれている場合は、これらの項目の出力は項目の順序により決まります。
ステートメント・セットに関する項目は次のようになります。
file.pdqxml:base-package-name
パッケージのベース名は、
pureQueryXML ファイル内のパッケージを示す
package エレメントの
name 属性の値です。
ベース名は、次の 2 つの部分で構成されます。
- ルート・パッケージ名
- 構成ユーティリティーが最後に pureQueryXML ファイルを処理したときに sqlLimit オプションの値により構成ユーティリティーがルート・パッケージ名に付加した任意の文字
次の 2 つのセクションの例では、以下のオブジェクトを使用します。
- captureFile.pdqxml
- この pureQueryXML ファイルには、基本パッケージ名が PKGA、PKGB、PKGC、および PKGD の 4 つのステートメント・セットが含まれています。各ステートメント・セットには、表 TABLE1 を使用する SQL ステートメントが含まれています。これらすべての SQL ステートメントで、TABLE1 は schema-name.TABLE1 ではなく TABLE1 として参照されます。オプション・ファイル内の各項目は、-bindOptions オプションを使用して QUALIFIER オプションを指定します。このオプションは、スキーマ名を使用せずに参照される表のスキーマ名を判別します。
- captureFile.pdqxml:PKGA
- このステートメント・セットには特定のオプションが必要なので、オプション・ファイル内に別個の項目があります。
これらの例の場合、分離レベルを指定しないでステートメント・セットをバインドすると、StaticBinder ユーティリティーは分離レベルごとに 1 つずつ計 4 つのパッケージを作成することを念頭に置いてください。PKGF に対して StaticBinder を実行し、分離レベルを指定しなかったとします。この場合、StaticBinder ユーティリティーはパッケージ PKGF1、PKGF2、PKGF3、および PKGF4 を作成し、それぞれに付加された数値はパッケージの分離レベルを示します。
1 つのバージョンの PKGD が作成される例
- この例では、StaticBinder ユーティリティーは、最初に修飾子 TESTSCHEMA を使用して pureQueryXML ファイル captureFile.pdqxml 内のすべてのステートメント・セットをバインドします。このセットには、基本パッケージ名 PKGA のステートメント・セットが含まれます。
次に StaticBinder ユーティリティーは、基本パッケージ名 PKGA のステートメント・セットを再びバインドしますが、今回は修飾子 PRODUCTIONSCHEMA を使用します。2 番目の項目でバインドされたパッケージは、最初の項目でバインドされた同じ名前のパッケージと置き換わります。
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 内のすべてのパッケージをバインドします。2 番目の項目でバインドされたパッケージは、最初の項目でバインドされた同じ名前のパッケージと置き換わります。
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
しかし、2 行目に -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
2 つのバージョンの PKGD が作成される例
- この例では、StaticBinder ユーティリティーは、最初に pureQueryXML ファイル captureFile.pdqxml 内の、基本パッケージ名 PKGA のステートメント・セットを含むすべてのステートメント・セットを処理します。StaticBinder は非コミット読み取り分離レベルで 4 つのパッケージをバインドし、各パッケージ名に数値 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
しかし、2 行目に -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