REBIND_ROUTINE_PACKAGE プロシージャー - パッケージの再バインド

REBIND_ROUTINE_PACKAGE プロシージャーは、SQL プロシージャー、ルーチン、コンパイル済み関数、またはトリガーに関連付けられたパッケージを再バインドします。

REBIND_ROUTINE_PACKAGE プロシージャーは機能的には REBIND コマンドと同じですが、パッケージ名の代わりにプロシージャー名を引数として使用します。

REBIND_ROUTINE_PACKAGE プロシージャーは、コマンド行またはアプリケーションから 呼び出すことができます。

明示的に関連パッケージを再バインドしても、ルーチンの再有効化は行われません。 無効なルーチンは、自動再有効化を使用するか、または明示的に ADMIN_REVALIDATE_DB_OBJECTS プロシージャーを使用して再有効化してください。 ルーチンの再有効化では、自動的に従属パッケージが再バインドされます。

許可

このプロシージャーを実行するには、以下の権限のいずれかが必要です。
  • プロシージャーでの EXECUTE 特権
  • DATAACCESS 権限
  • DBADM 権限
  • SQLADM 権限

デフォルトの PUBLIC 特権

制限のないデータベースでは、このプロシージャーが自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。

構文

REBIND_ROUTINE_PACKAGE を呼び出すには、いずれも同じように有効な 2 つの方法があります。 2 つの呼び出しの違いは、ルーチン名を指定する方法だけです。 1 つ目の例では、routine-name-string 変数はピリオドで区切られた ID 名で構成されます。 2 つ目の方法では、ルーチンは schemamodule、および name 値という別個の値で識別されます。

方法 1:

Read syntax diagramSkip visual syntax diagramREBIND_ROUTINE_PACKAGE(type ,routine-name-string,options )

方法 2:

Read syntax diagramSkip visual syntax diagramREBIND_ROUTINE_PACKAGE(type ,schema,module, name,options)

スキーマは SYSPROC です。

プロシージャー・パラメーター

タイプ
以下のいずれかの値を使用してルーチンまたはコンパイル・トリガーのタイプを指定する、タイプ CHAR(2) の入力引数。
  • 'P' - プロシージャー
  • 'SP' - プロシージャーの特定名
  • 'F' - コンパイル関数
  • 'SF' - コンパイル関数の特定名
  • 'T' - コンパイル・トリガー
routine-name-string (方法 1 のみ)
ルーチンまたはトリガーの名前を指定する、タイプ VARCHAR(386) の入力引数。 トリガー名はピリオドで区切られた 2 つの部分で構成されていて、schema.trigger という形式です。スキーマはオプションです。 ルーチン名はピリオドで区切られた 3 つの名前部分で構成されていて、schema.module.routine という形式です。スキーマとモジュールはオプションです。 スキーマを指定しないと、この値はデフォルトの CURRENT SCHEMA 特殊レジスターの値になります。 2 部構成の名前が指定されると、最初の部分はスキーマ名として当初解釈されます。そのスキーマ名の下にルーチンが見つからないと、最初の部分はモジュール名として解釈され、CURRENT SCHEMA の下のその名前のモジュール内でルーチンを検出しようとします。 スキーマ、モジュール、またはオブジェクト名に、二重引用符 (") またはピリオド (.) を含めることはできません。
schema (方法 2 のみ)
ルーチンまたはトリガーのスキーマを指定する、タイプ VARCHAR(128) のオプションの入力引数。 スキーマが指定されない場合、値はデフォルトで CURRENT SCHEMA 特殊レジスターの値になります。 このパラメーターには、大文字と小文字の区別があります。
module (方法 2 のみ)
ルーチンがあるモジュールの名前を指定する、タイプ VARCHAR (128) のオプションの入力引数。 このパラメーターをトリガーに指定しないでください。 このパラメーターを指定しない場合は、モジュール・ルーチンは無視されます。 このパラメーターには、大文字と小文字の区別があります。
name (方法 2 のみ)
ルーチンまたはトリガーの名前を指定する、タイプ VARCHAR (128) の入力引数。 このパラメーターには、大文字と小文字の区別があります。
オプション
REBIND コマンド構文に従うすべての再バインド・オプションのリストを指定する、タイプ VARCHAR(1024) のオプションの入力引数。 ANY または CONSERVATIVE の単一値も後方互換性のためにサポートされており、RESOLVE 再バインド・オプションの値として解釈されます。

ルーチンの修飾名は、検索するルーチンを決定するために使用されます。 検出されるルーチンは、SQL ルーチンでなければなりません。 それ以外は、エラーが返されます。(SQLSTATE 428F7) 特定名が使用されない場合は、複数のルーチンが検出される可能性があり、 エラーが返されます。(SQLSTATE 42725) このような場合は、必ず、検索したいルーチンの固有の名前を使用してください。

例 1: RESOLVE、REOPT、および APREUSE オプションを使用して、ルーチン UPDATE_EMPLOYEE のパッケージを再バインドします。

Method 1:
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'P','UPDATE_EMPLOYEE','RESOLVE ANY REOPT ONCE APREUSE YES')
Method 2:
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'P','','','UPDATE_EMPLOYEE','RESOLVE ANY REOPT ONCE APREUSE YES')

例 2: ルーチン UPDATE_EMPLOYEE のパッケージをオプションなしで再バインドします。

Method 1:
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'P','UPDATE_EMPLOYEE','')
Method 2:
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'P','','','UPDATE_EMPLOYEE','')

例 3: コンパイル済みトリガーのパッケージを再バインドします。

Method 1:
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'T','DRICARD.MIN_SALARY','REOPT ALWAYS')
Method 2:
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'T','DRICARD','','MIN_SALARY','REOPT ALWAYS')

例 4: 3 つの部分に分かれた名前を使用して、コンパイル済み関数のパッケージを再バインドします。

Method 1
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'F','DRICARD.MODULE.FUNCTION','REOPT ALWAYS')
Method 2
CALL SYSPROC.REBIND_ROUTINE_PACKAGE (
  'F','DRICARD','MODULE','FUNCTION','REOPT ALWAYS')