ワークベンチを使用すると、pureQueryXML ファイルにあるステートメント・セットを編集することができます。ステートメントを別のステートメント・セットに移動したり、新しいステートメント・セットを作成したり、ステートメント・セットを削除したり、ステートメント・セットの名前を変更したりすることができます。
pureQueryXML ファイル内のステートメント・セットは、1 つの分離レベルのパッケージを作成するか、または 4 つの分離レベルごとに 1 つずつパッケージ
を作成するかによって、1 つまたは 4 つの DB2® パッケージの基盤を形成する
ステートメント・セットです。
pureQueryXML ファイルを最初に編集する際にファイル内にあるステートメント・セットの数は、ファイルを開く前に、Default.genProps でそのファイルの sqlLimit オプションに指定する値によって異なります。
例えば、capture.pdqxml という名前の pureQueryXML ファイルに SQL ステートメントをキャプチャーするとします。
エディターでファイルを開く前に、Default.genProps ファイルを編集して以下の項目を追加します。
capture.pdqxml = -rootPkgName myPackage -sqlLimit 100
capture.pdqxml に 300 の SQL ステートメントをキャプチャーしたとします。このファイルを編集するために開くと、3 つのステートメント・セットに分割されていることがわかります。
- myPackageA。これには、100 個のステートメントが含まれています。
- myPackageB。これには、110 個のステートメントが含まれています。
- myPackageC。これには、90 個のステートメントが含まれています。
-sqlLimit オプションの値によって、ステートメント・セットに含めることができるステートメントの最大数が決まります。
(上記の例では、オプションの値を 100 に設定したにもかかわらず、Configure ユーティリティーによって、特定のカーソルを参照するステートメントがすべて myPackageB に含まれるように構成されたため、そのセットのステートメント数が 100 を超えています。)各セットの名前は、ルート・パッケージ名
に、英語アルファベット文字を A から順に付加した名前になります。
Configure ユーティリティーで、キャプチャーされたすべての SQL ステートメントを 1 つの
ステートメント・セットに収めることができた場合には、そのセットの名前に接尾部は付加されません。
注: DB2 データベースでは、
pureQuery Runtime はキャプチャーしたステートメントごとに特殊レジスターの値をキャプチャーします。SQL ステートメントを移動する場合、ステートメント・セットの特殊レジスターの値が一致することを確認してください。
- SQL SELECT、UPDATE、INSERT、および DELETE ステートメントを、あるステートメント・セットから別のステートメント・セットに移動する
- pureQueryXML ファイルに複数のステートメント・セットが含まれている場合、あるセットから別のセットに SQL ステートメントをドラッグすることができます。
Ctrl キーを押したまま複数のステートメントをクリックし、それらをグループとして
ターゲット・ステートメントにドラッグすることにより、一度に複数のステートメントを移動できます。
名前付きカーソルを使用するステートメント・グループに属するステートメントを移動する場合は、ステートメントを選択し、ターゲット・ステートメント・セットにドラッグします。
エディターによって、グループ内の他のステートメントが自動的に移動されます。
セット内のステートメント数が、Default.genProps ファイル内の pureQueryXML ファイルのエントリーの -sqlLimit の値を超えている場合、pureQueryXML ファイルを保存すると、以下の 2 つのいずれかのアクションが発生します。
- ステートメント・セットの名前がブランクである場合、エディターはこれらのステートメントを名前が付いていないステートメント・セットに取り込んで、新しい名前付きステートメント・セットに再構成します。
この新しいセットの名前は、pureQueryXML ファイルの現在のルート・パッケージ名に基づきます。
Configure ユーティリティーは、ルート・パッケージ名に次に使用可能な英語アルファベット文字を追加します。
- ステートメント・セットに名前が付いている場合、そのセット内の SQL ステートメントの数は変わりません。
-sqlLimit オプションの値は無効になります。
注: Configure ユーティリティー・オプション -groupSQLByStrings お
よび -groupSQLBySpecialRegisters を使用して、
エディターによる SQL ステートメントのステートメント・セットへの構成法を制御することもできます。
ヒント: DDL ステートメントは移動できません。
ただし、DDL ステートメントが含まれているステートメント・セットがファイルに複数含まれており、DDL ステートメントを 1 つのステートメント・セットに統合する場合は、DDL ステートメントが含まれているステートメント・セットの名前を除去します。
その後、ファイルを保存します。
- ステートメント・セットの作成
- エディターの任意の場所を右クリックして、「新規ステートメント・セットの作成 (Create New Statement Set)」を選択します。エディターにより、名前がブランクの新しいステートメント・セットが作成されます。他のステートメント・セットの SQL ステートメントをこの新しいステートメント・セットに移動できます。
- 新しいステートメント・セットに名前を付けるには、次の 3 つの方法があります。
- 現行のルート・パッケージ名に基づいてステートメント・セットの名前を付ける場合は、1 つ以上のステートメントをファイルに移動した後、ファイルを保存します。Configure ユーティリティーは、ステートメント・セットに、次の 2 つの要因に基づく名前を付けます。
- 該当する Default.genProps ファイルの -rootPkgName オプションの値
- 英語アルファベットで次に使用可能な文字 (1 文字または複数文字)
例えば、myPackageA と myPackageB という名前のセットが既にあるファイルにセットを作成する場合、新しいセットの名前は myPackageC になります。myPackageAA と myPackageAB という 2 つのセットが既に
パッケージにある場合、新しいパッケージの名前は myPackageAC になります。
- 新しいルート・パッケージ名に基づいてステートメント・セットの名前を付ける場合は、次の手順に従います。
- Default.genProps ファイルを編集するために開きます。
- pureQueryXML ファイルの -rootPkgName の値を変更します。
- Default.genProps ファイルを保存します。エディターで、プロジェクトを作成するかどうかを
尋ねられたら、「いいえ」をクリックします。
- pureQueryXML ファイルを保存します。
Configure ユーティリティーは、ステートメント・セットに新しいルート・パッケージ名から派生した名前を付けます。
pureQueryXML ファイルにさらに多くのステートメント・セットを作成した場合、再度ルート・パッケージ名を変更したり、作成したセットにルート・パッケージ名と関連がない名前を付けたり
しない限り、追加されたステートメント・セットの名前は、ルート・パッケージ名と
英語アルファベットの次の文字で構成されます。
- ステートメント・セットにルート・パッケージ名と関連がない名前を付けるには、次の手順に従います。
- ステートメント・セットのノードをクリックして、新しい名前を入力します。
名前はファイル内でユニークでなければならず、使用しているデータベースにおいて無効な文字が含まれていてはなりません。
また、名前には、StaticBinder ユーティリティーが 1 桁の数字を付加できるように、スペースがなければなりません。この数字は、ユーティリティーがステートメント・セットから作成する
パッケージ (1 つまたは複数) の分離レベルを示します。
- pureQueryXML ファイルを保存します。
- ステートメント・セットの削除
- 不要になったステートメント・セットまたは空のステートメント・セットを削除できます。
- パッケージを右クリックして、「ステートメント・セットの削除 (Delete Statement Set)」
を選択します。SQL ステートメントのセットが pureQueryXML ファイルから削除されます。
- pureQueryXML ファイルを保存します。
- ファイル内の他のステートメント・セットの名前は変わりません。
例えば、myPackageA から myPackageE までのセットが含まれているファイルがあるとします。
myPackageC を削除したとします。myPackageD および myPackageE の名前が myPackageC および myPackageD に
変わることはありません。
- ステートメント・セットの名前の変更
- ステートメント・セットの名前は、そのセットの結果となる DB2 パッケージのベース名です。
例えば、myPackageA という名前のセットから、4 つの DB2 パッケージ、myPackageA1、myPackageA2、myPackageA3、myPackageA4 が作成されます。それぞれの数は、パッケージの分離レベルを示します。
ステートメント・セットの名前は、以下の 2 とおりの方法で変更できます。
制約事項: DDL ステートメントしか含まれていないステートメント・セットの名前は
変更できません。