ユーザーが、バインド・ファイルを必要とせずに、データベースに格納されているパッケージを、 再作成することができます。
許可
以下のどれかが必要です。
SYSCAT.PACKAGES システム・カタログ表の BOUNDBY 列にログに記録した許可 ID は、 パッケージの最新のバインダーの ID であり、再バインド用のバインダー許可 ID として使用されます。 また、パッケージの表参照のための省略時スキーマ としても使用されます。 この省略時修飾子は、ユーザーが実行する再バインド要求の許可 ID と、 異なる可能性があることに注意してください。 REBIND は、パッケージが作成された時に指定されたのと同じバインド・オプションを使用します。
必須接続
データベース。 データベース接続が存在しない場合で、暗黙の接続が使用可能な場合には、 省略時データベースへの接続が行われます。
コマンド構文
>>-REBIND-+---------+--package-name-----------------------------> '-PACKAGE-' .-ANY----------. >----/RESOLVE--+-CONSERVATIVE-+--------------------------------><
コマンド・パラメーター
使用上の注意
REBIND は、正常な再バインドに続いて、トランザクションを自動的にコミットしません。 ユーザーは、トランザクションを明示的にコミットする必要があります。 これにより、ユーザーがある統計を更新する場合の、「what if」分析を使用可能にして、 変更した内容を見るために、パッケージを再バインドしようとします。 また、作業単位内の複数の再バインドも許可しています。
注: | REBIND コマンドは、自動コミットが使用可能な場合には、 トランザクションをコミットします。 |
このコマンドは以下の事柄を行います。
パッケージを明示的に再バインドするのに BIND と REBIND のどちらを使用するかの選択は、 その環境によります。 REBIND のパフォーマンスが BIND のパフォーマンスよりかなり良いため、 BIND の使用を明示的に必要としない場合はいつでも、REBIND を使用するように推奨されています。 しかしながら、次の場合には、BIND は使用されなければなりません。
REBIND は、DB2 コネクトによってサポートされます。
REBIND が他のユーザーが使用中のパッケージで実行された場合、 他のユーザーの論理装置の作業が終了するまで、再バインドは起こりません。 再バインドの間、SYSCAT.PACKAGES システム・カタログ表中のパッケージのレコードで排他ロックが保留になっているからです。
REBIND を実行する際、データベース・マネージャーは、SYSCAT.STATEMENTS システム・カタログ表に保管されている SQL 文からパッケージを再作成します。
REBIND がエラーを検出すると、処理を停止してエラー・メッセージが戻されます。
REBIND は、explsnap バインド・オプションが YES または ALL に設定されて作成されたパッケージ (値の設定は、 SYSCAT.PACKAGES カタログ表項目の EXPLAIN_SNAPSHOT 列で示されます)、 あるいは explain バインド・オプションが YES または ALL に設定されて作成されたパッケージ (値の設定は、 SYSCAT.PACKAGES カタログ表項目の EXPLAIN_MODE 列で示されます) に再び Explain を実行します。 使用される Explain 表は、REBIND コマンド要求者のものであり、 最初のバインド・コマンド発行者のものではありません。
SQL ステートメントがエラーであることが検出され、 BIND オプションの SQLERROR CONTINUE を指定していた場合、 問題が訂正されたとしても、 そのステートメントには無効というマークが付けられます。 REBIND によっても、ステートメントが無効の状態は変更できません。 VALIDATE RUN でバインドされたパッケージでは、ステートメントは、 REBIND 実行時にオブジェクトが存在するかまたは権限の問題があるかどうかに応じて、 REBIND を通じて静的バインドから増分バインドに変更したり、 増分バインドを静的バインドに変更することができます。
以下も参照