DROP METHOD
Synopsis
DROP METHOD name [ FROM className ]
引数
name | 非修飾名として削除されるメソッドの名前。メソッドのパラメータの括弧は指定しないでください。識別子の名前です。詳細は、"Caché SQL の使用法" の “識別子“ の章を参照してください。 |
FROM className | オプション — 指定があれば、FROM className 節は与えられたクラスからメソッドを削除します。この節が指定されていない場合、Caché はそのスキーマのすべてのクラスで該当するメソッドを検索し、削除します。しかし、この名前でのメソッドが見つからない場合、または複数の同名のメソッドが見つかった場合、エラー・コードが返されます。メソッドの削除の結果、クラスが空になる場合、DROP METHOD はそのクラスも削除します。 |
概要
DROP METHOD コマンドは、メソッドを削除します。メソッドを削除すると、Caché は、そのメソッドが許可されているすべてのユーザとロールからそのメソッドを削除して、データベースから削除します。
メソッドを削除するためには、GRANT コマンドで指定される %DROP_METHOD 管理者特権が必要です。定義された所有者を持つクラスのメソッドを削除しようとする場合、クラスの所有者としてログインする必要があります。この特権がないと、SQLCODE -99 エラー (特権違反) が生成されます。
指定されたメソッドが存在しない場合、DROP METHOD は SQLCODE -362 エラーを発行します。指定された className が存在しない場合、DROP METHOD は SQLCODE -360 エラーを発行します。指定されたメソッドが複数のメソッドを参照する可能性がある場合、DROP METHOD は SQLCODE -361 エラーを生成します。このあいまいさを解消するには、className を指定する必要があります。
メソッドが PROCEDURE 特性キーワードを使用して定義されている場合は、$SYSTEM.SQL.ProcedureExists()Opens in a new tab メソッドを呼び出すことで、そのメソッドが現在のネームスペース内に存在しているかどうかを確認できます。PROCEDURE キーワードを使用して定義されたメソッドは、DROP METHOD または DROP PROCEDURE によって削除できます。
例
以下の埋め込み SQL の例は、クラス User.Employee からの mymeth の削除を試行します (クラス User.Employee の作成例は、"CREATE TABLE" を参照してください)。
&sql(DROP METHOD mymeth FROM User.Employee)
IF SQLCODE=0 {
WRITE !,"Method deleted" }
ELSEIF SQLCODE=-360 {
WRITE !,"Nonexistent class: ",%msg }
ELSEIF SQLCODE=-362 {
WRITE !,"Nonexistent method: ",%msg }
ELSE {WRITE !,"Unexpected Error code: ",SQLCODE}
関連項目
-
"Caché エラー・リファレンス" にリストされた SQLCODE エラー・メッセージ