DROP FUNCTION

DROP FUNCTION コマンドを使用して、データベースから既存のユーザー定義関数を除去します。 関数を除去する際に、関数のオブジェクト・ファイルもユーザー・コード・オブジェクト・リポジトリーから削除されます。

概要

ユーザー定義関数を除去するための構文:
DROP FUNCTION function_name(argument_types)

入力

DROP FUNCTION コマンドには、以下を入力できます。
表 1. DROP FUNCTION の入力
入力 説明
FUNCTION_NAME 既存のユーザー定義関数の名前を指定します。 複数スキーマをサポートするシステムの場合、schema.function のフォーマットで名前を指定し、現行データベースの別のスキーマ内の関数を除去することができます。 別のデータベース内の関数を除去することはできません。
引数タイプ 関数を一意的に識別する、完全指定の引数データ型のリストを指定します。 Netezza Performance Serverのデータ型はすべてサポートされています。 ストリングには、サイズまたは ANY (ジェネリック・サイズの場合) を含める必要があります。 NUMERIC 型には、精度と位取り、または ANY (ジェネリック・サイズの場合) を含める必要があります。 VARARGS 値を指定して、可変引数関数を除去することもできます。

出力

DROP FUNCTION コマンドの出力は以下のとおりです。
表 2. DROP FUNCTION の出力
出力 説明
DROP FUNCTION コマンドが成功した場合にシステムが返すメッセージです。
ERROR: Name: No such function 指定された関数が現行データベースに存在しない場合にシステムが戻すメッセージです。
Error: DropFunction: existing UDX name(argument_types) differs in size of string/numeric arguments このエラーは、同じ名前の UDX が存在するが、そのサイズが、ストリングまたは数値の引数に対して指定されたサイズではないことを示します。 関数を除去するには、正しいサイズを含む正確な引数型リストを指定してください。
ERROR: Can't delete function name - object depends on it UDF がテーブルまたはビューで参照されている場合にシステムが戻すメッセージです。 依存関係が解決されるまでは、UDF を除去できません。

説明

アクティブな照会で使用中のユーザー定義関数を除去することはできません。 アクティブなクエリ・トランザクションが完了すると、Netezza Performance Serverシステムは DROP FUNCTION コマンドを処理して関数を削除します。 関数は、現行データベースで定義されている必要があります。

既存のテーブルまたはビューが参照している UDF を除去することはできません。 削除したいUDFへの依存関係を解決する方法については、UDXをドロップする前の依存関係チェックを参照のこと。

必要な特権

UDF を除去するには、以下の基準のいずれか 1 つを満たす必要があります。
  • FUNCTION オブジェクトに対する Drop 特権を持つ必要があります。
  • その特定の UDF オブジェクトに対する Drop 特権を持つ必要があります。
  • その UDF の所有者である必要があります。
  • データベース管理ユーザー、現行データベース所有者、または複数スキーマをサポートするシステム上の現行スキーマの所有者である必要があります。

共通タスク

DROP FUNCTION コマンドを使用して、データベースから既存の関数を除去します。

使用法

以下に使用例を示します。
  • サンプル関数 myfunc(char(12)) を除去するには、次のように入力します。
    MYDB.SCHEMA(MYUSER)=> DROP FUNCTION myfunc(char(12));