Skip to main content

DROP QUERY (SQL)

クエリを削除します。

構文

DROP QUERY [IF EXISTS] name [ FROM className ]

概要

DROP QUERY コマンドはクエリを削除します。クエリを削除すると、InterSystems IRIS は、そのクエリ権限が与えられている全ユーザおよびロールでそれを無効にし、データベースから削除します。

クエリの削除には、GRANT コマンドで指定された %CREATE_QUERY 管理者特権が必要です。定義された所有者を持つクラスのクエリを削除しようとする場合、クラスの所有者としてログインする必要があります。この特権がないと、SQLCODE -99 エラー (特権違反) が生成されます。

クエリは、そのクエリ定義を含むクラス定義が導入済みのクラスの場合、削除することはできません。この操作は SQLCODE -400 エラーで失敗し、%msg が “導入済みのクラス classname を変更する DDL を実行できません” に設定されます。

name と FROM className の次のような組み合わせがサポートされています。FROM 節では、SQL 名ではなく、クラス・パッケージ名とクエリ名を指定することに注意してください。これらの例では、システム全体の既定のスキーマ名は、User クラス・パッケージに対応する SQLUser です。

  • DROP QUERY BonusCalc FROM queryBonusCalc : クエリ SQLUser.BonusCalc() を削除します。

  • DROP QUERY BonusCalc FROM User.queryBonusCalc : クエリ SQLUser.BonusCalc() を削除します。

  • DROP QUERY Test.BonusCalc FROM queryBonusCalc : クエリ SQLUser.BonusCalc() を削除します。

  • DROP QUERY BonusCalc FROM Employees.queryBonusCalc : クエリ Employees.BonusCalc() を削除します。

  • DROP QUERY Test.BonusCalc FROM Employees.queryBonusCalc : クエリ Employees.BonusCalc() を削除します。

指定されたクエリが存在しない場合、DROP QUERY は SQLCODE -362 エラーを発行します。指定されたクラスが存在しない場合、DROP QUERY は SQLCODE -360 エラーを発行します。指定されたクエリが複数のクエリを参照する可能性がある場合、DROP QUERY は SQLCODE -361 エラーを生成します。このあいまいさを解消するには、className を指定する必要があります。

また、クラス定義からクエリ (ストアドプロシージャとして投影) を削除してクラスをリコンパイルするか、クラス全体を削除することによって、クエリを削除することもできます。

引数

IF EXISTS

存在しないクエリに対してコマンドが実行される場合にエラーを抑制する引数 (オプション)。

name

削除するクエリの名前。識別子の名前です。クエリのパラメータの括弧は指定しないでください。name は修飾 (schema.name)、未修飾 (name) のどちらでもかまいません。FROM className 節が指定されていない限り、クエリ名が未修飾の場合はシステム全体の既定のスキーマ名が使用されます。

FROM className

指定があれば、FROM className 節は与えられたクラスからクエリを削除します。この節が指定されていない場合、InterSystems IRIS はそのスキーマのすべてのクラスで該当するクエリを検索し、削除します。しかし、この名前でのクエリが見つからない場合、または同名のクエリが複数見つかった場合、エラー・コードが返されます。クエリの削除の結果、クラスが空になる場合、DROP QUERY はそのクラスも削除します。

以下の例は、クラス User.Employee からの myq の削除を試行します。(クラス User.Employee の作成例は、"CREATE TABLE" を参照してください)。

DROP QUERY myq FROM User.Employee

関連項目

FeedbackOpens in a new tab