ステートメント・セットの編集

ワークベンチを使用すると、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 つのステートメント・セットに分割されていることがわかります。

-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 になります。

  • 新しいルート・パッケージ名に基づいてステートメント・セットの名前を付ける場合は、次の手順に従います。
    1. Default.genProps ファイルを編集するために開きます。
    2. pureQueryXML ファイルの -rootPkgName の値を変更します。
    3. Default.genProps ファイルを保存します。エディターで、プロジェクトを作成するかどうかを 尋ねられたら、「いいえ」をクリックします。
    4. pureQueryXML ファイルを保存します。

    Configure ユーティリティーは、ステートメント・セットに新しいルート・パッケージ名から派生した名前を付けます。 pureQueryXML ファイルにさらに多くのステートメント・セットを作成した場合、再度ルート・パッケージ名を変更したり、作成したセットにルート・パッケージ名と関連がない名前を付けたり しない限り、追加されたステートメント・セットの名前は、ルート・パッケージ名と 英語アルファベットの次の文字で構成されます。

  • ステートメント・セットにルート・パッケージ名と関連がない名前を付けるには、次の手順に従います。
    1. ステートメント・セットのノードをクリックして、新しい名前を入力します。 名前はファイル内でユニークでなければならず、使用しているデータベースにおいて無効な文字が含まれていてはなりません。 また、名前には、StaticBinder ユーティリティーが 1 桁の数字を付加できるように、スペースがなければなりません。この数字は、ユーティリティーがステートメント・セットから作成する パッケージ (1 つまたは複数) の分離レベルを示します。
    2. pureQueryXML ファイルを保存します。
ステートメント・セットの削除
不要になったステートメント・セットまたは空のステートメント・セットを削除できます。
  1. パッケージを右クリックして、「ステートメント・セットの削除 (Delete Statement Set)」 を選択します。SQL ステートメントのセットが pureQueryXML ファイルから削除されます。
  2. pureQueryXML ファイルを保存します。
ファイル内の他のステートメント・セットの名前は変わりません。 例えば、myPackageA から myPackageE までのセットが含まれているファイルがあるとします。 myPackageC を削除したとします。myPackageD および myPackageE の名前が myPackageC および myPackageD に 変わることはありません。
ステートメント・セットの名前の変更
ステートメント・セットの名前は、そのセットの結果となる DB2 パッケージのベース名です。 例えば、myPackageA という名前のセットから、4 つの DB2 パッケージ、myPackageA1、myPackageA2、myPackageA3、myPackageA4 が作成されます。それぞれの数は、パッケージの分離レベルを示します。

ステートメント・セットの名前は、以下の 2 とおりの方法で変更できます。

制約事項: DDL ステートメントしか含まれていないステートメント・セットの名前は 変更できません。
  • 新しい名前を、新しいルート・パッケージ名に基づいて付ける場合は、次の手順に従います。
    1. Default.genProps ファイル内の pureQueryXML ファイルのエントリーで、 -rootPkgName オプションの値を、 エディターが新しい名前を付ける際に基にするルート・パッケージ名 に変更します。
    2. Default.genProps ファイルを保存します。エディターで、プロジェクトを作成するかどうかを 尋ねられたら、「いいえ」をクリックします。
    3. pureQueryXML ファイルで、名前を変更する各ステートメント・セットを右クリックして、「ステートメント・セット名のクリア (Clear Statement Set Name)」を選択します。
    4. pureQueryXML ファイルを保存します。

    名前が付いていないすべてのステートメント・セット内の SQL ステートメントの数が、Default.genProps ファイル内のこのファイルのエントリー内にある -sqlLimit オプションの値を超える場合、Configure ユーティリティーは、それらに対して複数のステートメント・セットを作成します。 例えば、名前が付いていないセットに 150 の SQL ステートメントがあり、sqlLimit が 125 に設定されている 場合、Configure ユーティリティーは、元の名前が付いていないステートメント・セットに代わる 2 つの ステートメント・セットを作成し、名前を付けます。

  • 1 つ以上の各ステートメント・セットに新しい名前を指定する場合にはは、以下の手順に従います。
    1. pureQueryXML ファイルで、ステートメント・セットを右クリックして、「ステートメント・セット名のクリア (Clear Statement Set Name) 」を選択します。
    2. ステートメント・セットのノードをクリックして、新しい名前を入力します。 名前はファイル内でユニークでなければならず、使用しているデータベースにおいて無効な文字が含まれていてはなりません。 また、名前には、StaticBinder ユーティリティーが 1 桁の数字を付加できるように、スペースがなければなりません。この数字は、ユーティリティーがステートメント・セットから作成する パッケージ (1 つまたは複数) の分離レベルを示します。
    3. pureQueryXML ファイルを保存します。

フィードバック