外部UDFをコンパイルおよびインストールし、そのUDFの呼び出しに使用するSQL関数定義を作成または置換します。
Vantage delivered as-a-serviceを使用しているお客様は、独自のC++および Java UDF、UDF、UDT、または外部ストアド プロシージャを作成できません。
ANSI準拠
CREATE FUNCTIONは、ANSI SQL:2011に準拠しており、さらに機能が拡張されています。
REPLACE FUNCTIONは、ANSI SQL:2011規格に対するTeradataの拡張機能です。
必要な権限
CREATE FUNCTIONとREPLACE FUNCTIONの実行に必要な権限は次のように異なります。
- CREATE FUNCTIONリクエストを実行するには、関数を保存するデータベース(UDTに関連したUDFの場合はSYSUDTLIBを含む)に対して明示的なCREATE FUNCTION権限が必要です。
データベースまたはユーザーの作成時に、システムが自動的にCREATE FUNCTION権限を付与することはありません。その権限は明示的に付与する必要があります。
データベースまたはユーザーに対して明示的なWITH GRANT OPTION権限を定義しない限り、そのデータベースまたはユーザーが所有するデータベースおよび関数に対してCREATE FUNCTIONが暗黙的に付与されることはありません。
- 既存の関数に対してREPLACE FUNCTION文を実行するには、関数または関数が含まれるデータベースに対して明示的なDROP FUNCTION権限が必要です。関数を置換する場合、CREATE FUNCTION権限は必要ありません。
- CREATE FUNCTION文を実行するには、関数を保存するデータベースに対して明示的なCREATE FUNCTION権限が必要です。
- 関数の作成者でない場合は、SYSLIBデータベースから実行するすべてのUDFに対するEXECUTE FUNCTION権限が必要になります。
関数の作成者には、そのUDFに対するEXECUTE FUNCTION権限が自動的に与えられます。
UDTが入力パラメータとして、または関数の結果として指定される場合、現行ユーザーには次の権限のいずれかが必要です。
- SYSUDTLIBデータベースに対するUDTUSAGE権限。
- 指定されたUDTに対するUDTUSAGE権限。
テーブルの行にセキュリティ ポリシーを適用するために関数を使用する場合、その関数の目的がテーブルの行の削除、挿入、選択、更新でなければ、その関数を実行するために、OVERRIDE DELETE CONSTRAINT、OVERRIDE INSERT CONSTRAINT、OVERRIDE SELECT CONSTRAINT、OVERRIDE UPDATE CONSTRAINTのいずれか該当する権限が必要になります。その関数を呼び出すリクエストに、ターゲットのテーブルの行の制約列に割り当てる値を組み込むことも必要です。
自動的に与えられる権限
次の権限が、外部関数の作成者に自動的に与えられます。
- DROP FUNCTION
- EXECUTE FUNCTION