ALTER METHOD ステートメント

ALTER METHOD ステートメントは、メソッドに関連付けたメソッド本体を変更して、既存のメソッドを変更します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んだり、動的 SQL ステートメントを使用して発行したりすることができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

ステートメントの許可 ID によって保持されている特権には、少なくとも以下のいずれかの権限が含まれていなければなりません。
  • データベースに対する CREATE_EXTERNAL_ROUTINE 権限、および以下の少なくとも 1 つ。
    • タイプのスキーマに対する ALTERIN 特権
    • タイプのスキーマに対する SCHEMAADM 特権
    • SYSCAT.DATATYPES カタログ・ビューの OWNER 列に記録されているそのタイプの所有者
  • DBADM 権限

構文

構文図を読む構文図をスキップするALTERmethod-designator EXTERNAL NAME 'string'identifier
method-designator
構文図を読む構文図をスキップするMETHODmethod-name(,data-type)FORtype-nameSPECIFIC METHODspecific-name

説明

method-designator
変更されるメソッドを一意的に識別します。 詳しくは、関数、メソッド、およびプロシージャーの指定子を参照してください。
EXTERNAL NAME 'string' または identifier
メソッドをインプリメントするユーザー作成コードの名前を指定します。 このオプションは、外部メソッドを変更する際にのみ指定できます (SQLSTATE 42849)。

  • SYSIBM、SYSFUN、または SYSPROC スキーマのメソッドは変更できません (SQLSTATE 42832)。
  • LANGUAGE SQL として宣言されたメソッドは変更できません (SQLSTATE 42917)。
  • LANGUAGE CLR として宣言されたメソッドは変更できません (SQLSTATE 42849)。
  • 指定するメソッドは、変更する前に本体を持っている必要があります (SQLSTATE 42704)。

newaddresslib ライブラリーを使用するように、 構造化タイプ ADDRESS_T の DISTANCE() メソッドを変更します。
   ALTER METHOD DISTANCE()
     FOR ADDRESS_T
     EXTERNAL NAME 'newaddresslib!distance2'