アノテーション付きメソッドが宣言されるインターフェースの作成後、静的に実行する SQL ステートメントが含まれる DB2® パッケージの構成および作成を開始できます。
始める前に
Oracle データベースを使用している場合は、SQL を静的に実行することはできません。
バインド操作の実行前に、以下の前提条件を満たしていることを確認してください。
- pureQuery StaticBinder ユーティリティーを呼び出すユーザーの特権設定に、以下の特権のいずれかが含まれること。
- SYSADM 権限
- DBADM 権限
- パッケージが存在しない場合には、BINDADD 特権に加え、以下のいずれかの特権。
- CREATEIN 特権
- DB2 for z/OS®: 対象となるコレクションまたはすべてのコレクションに対する PACKADM 権限
- DB2 Database for Linux, UNIX, and Windows: パッケージのスキーマ名が存在しない場合には、データベースに対する IMPLICIT_SCHEMA 権限
- DB2 for z/OS:
パッケージが存在する場合、パッケージに対する BIND 特権。
- DB2 Database for Linux, UNIX, and Windows: パッケージが存在する場合には次が必要です。
- スキーマに対する ALTERIN 特権
- パッケージに対する BIND 特権
- DB2 for Linux, UNIX,
and Windows:
アプリケーションでの静的 SQL ステートメントのコンパイルに必要な特権すべても、ユーザーに付与される必要があります。グループに付与される特権は、静的ステートメントの許可検査では使用されません。
ユーザーに SYSADM 権限があるものの、バインドを完了するための明示特権がない場合、DB2 データベース・マネージャーは明示的な DBADM 権限を自動的に付与します。
手順
ワークベンチを使用して pureQuery コードでの静的 SQL のサポートを構成するには、以下を実行します。
- 複数のインターフェースから SQL ステートメントを別個の DB2 パッケージ 1 つにまとめたい場合、それらのインターフェースの 1 つを別のインターフェース 1 つを使用して拡張します。
- Default.genProps ファイルで、編集する DB2 パッケージのコレクション、ルート名、およびバージョンを指定します。
- インターフェース内の SQL ステートメントおよびそれらについての情報を表示します。
パッケージ・エクスプローラーでプロジェクト・フォルダーを選択するか、Java プロジェクト内の任意のファイルを選択すると、「SQL Outline」ビューにデータがキャプチャーされます。
ビューが開いていない場合は、「ウィンドウ」 > 「ビューの表示」 > 「その他」を選択します。「ビューの表示」ウィンドウで、「その他」 > 「SQL Outline」と選択します。
バインド操作は実行されていないため、ビューに表示されるのはバインドされていないパッケージのみです。
- Default.bindProps ファイルで、DB2 パッケージへの SQL ステートメントのバインド方法を決定するオプションを指定します。
- 以下のいずれかのステップにしたがって、Java プロジェクト内のインターフェースにある SQL ステートメントをバインドします。
- Java プロジェクト内のインターフェースをすべてバインドするには、プロジェクトを右クリックし、「pureQuery」 > 「pureQuery アプリケーションのバインド」を選択します。
- Java プロジェクト内のインターフェースを 1 つ以上バインドするには、選んだインターフェースを右クリックし、「pureQuery」 > 「バインド」を選択します。
「接続の選択」ウィンドウが開くので、使用する DB2 データベースを選択します。Java プロジェクトに関連付けられていないデータベースを選択することができます。重要: オフラインでの作業中はバインド操作を実行できません。バインド先にする DB2 データベースに接続している必要があります。
- DB2 パッケージおよびそれらに含まれる SQL ステートメントを表示します。 プロジェクト・フォルダーを選択し、「SQL Outline」ビューの「SQL」ページを調べます。ここで、必要な DB2 パッケージが作成済みであることを確認します。
データベース内にパッケージが作成されたことを確認する場合は、「SQL Outline」ビューでそのパッケージを右クリックし、「データ・ソース・エクスプローラーで表示」を選択します。
pureQuery コードの実行前に、DB2 パッケージを異なるオプションで再作成したり、パッケージの新規バージョンを作成することができます。
- アプリケーションを実行して、バインド済み SQL ステートメントの静的実行を行います。
タスクの結果
「SQL Outline」ビューの使用は、SQL ステートメントで生じる可能性のある問題のトラブルシューティングに役立ちます。
インターフェース内の SQL ステートメントを 1 つ以上変更する場合、またはインターフェースにステートメントを追加する場合、 それらのステートメントを含む新規バージョンの DB2 パッケージの変更または作成を行うことができます。
アプリケーションを JAR ファイルに展開する場合: ワークベンチでは、Default.bindProps ファイルの defaultOptions 行が、ユーザーが該当するファイルで個別にオプションを指定するインターフェースを除くプロジェクトのすべてのインターフェースに適用されます。
JAR ファイルにアプリケーションを展開する前に、バインドする予定の SQL ステートメントが含まれるすべてのインターフェースの項目が Default.bindProps ファイルに含まれていることを確認してください。
pureQuery StaticBinder ユーティリティーは、アプリケーションを展開するデータベースのコマンド行から実行する必要があり、Default.bindProps ファイルにリストされているインターフェースに対してのみ動作します。
インターフェースに追加するには、以下のようにします。
- プロジェクト内の pureQueryFolder フォルダーで
Default.bindProps ファイルを右クリックし、「pureQuery」 > 「項目の追加または除去」を右クリックします。
- 「項目の追加または除去」ウィンドウで、必要なインターフェースを追加します。
アプリケーションの展開後に、DB2 パッケージのルート・パッケージ名、コレクション ID、およびバージョンを訂正する必要が生じた場合、defaultOptions の行が適用されるすべてのインターフェースの項目が、Default.genProps ファイルに含まれていることも確認してください。
このファイルを右クリックし、「項目の追加または除去」ウィンドウを使用することで、項目をファイルに追加することもできます。