関数を削除します。

構文

DROP FUNCTION [ IF EXISTS ] name
  [ ([ [ argmode ] [ argname ] argtype ] [, ...]) ]
  [ CASCADE | RESTRICT ]

説明

DROP FUNCTION コマンドを実行して既存の関数を削除します。 このコマンドを実行するには、スーパーユーザーまたは関数の所有者である必要があります。 これがオーバーロードされた関数である場合、関数のすべてのデータ型の IN または IN OUT モードの入力引数の指定が必要です。 この要件は、Oracle データベースと互換性がありません。 Oracle では、関数名のみが指定されます。 Oracle と互換性のある PolarDB データベースでは、関数名のオーバーロードが可能であるため、オーバーロードされた関数の DROP FUNCTION コマンドに入力引数のデータ型によって提供される関数シグネチャが必要です。

IF EXISTSCASCADE、または RESTRICT の使用法には Oracle データベースとの互換性はなく、Oracle と互換性のある PolarDB データベースでのみ使用されます。

パラメーター

パラメーター 説明
IF EXISTS 関数が存在しない場合でも、エラーは発生しません。 この場合、通知が発行されます。
name 既存の関数の名前はオプションで、スキーマ修飾も可能です。
argmode 引数のモード。 有効な値: ININ OUT、または OUT。 このパラメーターを省略すると、デフォルトは IN になります。 DROP FUNCTION は、実際には OUT 引数の影響を受けません。これは、関数の ID を決定するために必要なのは入力引数だけであるためです。 したがって、IN および IN OUT 引数をリストするだけで十分です。 argmode の指定は Oracle データベースと互換性がなく、Oracle と互換性のある PolarDB データベースにのみ適用されます。
argname 引数の名前。 DROP FUNCTION は、実際には引数名の影響を受けません。これは、関数の ID を決定するために必要なのは入力引数だけであるためです。 argname の指定は Oracle データベースと互換性がなく、Oracle と互換性のある PolarDB データベースにのみ適用されます。
argtype 関数の引数のデータ型。 argtype の指定は Oracle データベースと互換性がなく、Oracle と互換性のある PolarDB データベースにのみ適用されます。
CASCADE 関数に依存するオブジェクト (オペレーターやトリガーなど) を自動的にドロップし、次にそれらのオブジェクトに依存するすべてのオブジェクトをドロップします。
RESTRICT 依存するオブジェクトがある場合、関数の削除を拒否します。 この値がデフォルトです。

次のコマンドは、emp_comp 関数を削除します。

DROP FUNCTION emp_comp(NUMBER, NUMBER);