CREATE FUNCTIONとREPLACE FUNCTION(外部形式) - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

外部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