関数識別子 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

関数名は、特定関数名、外部関数名、関数エントリ ポイント名とは異なります。関数名FUNCTION CLASS句EXTERNAL NAME句、および UDFデフォルト ロケーション パス を参照してください。

以下の表に、それぞれの関数識別子の違いを簡単にまとめます。

関数識別子 構文変数名 定義
関数名 function_name SQL文から関数を呼び出すために使用する識別子。

特定名が関数に割り当てられていない場合、データ ディクショナリに保存される名前はfunction_nameです。

関数に特定名が割り当てられている場合、function_nameはディクショナリが関数をデータベース オブジェクトとして識別するための名前ではないので、データベース内で固有である必要はありません。

特定関数名 specific_function_name ディクショナリ テーブルDBC.TVM内で関数をデータベース オブジェクトとして定義するために使用する識別子。
外部関数名 external_function_name CまたはC++外部ルーチンの外部関数名は、以下の2つの方法で表現できます。
  • 関数オブジェクトのエントリ ポイント名を示す識別子として表現する方法。文字の大小は有意であり、名前はCまたはC++関数本体の名前と一致していなければなりません。
  • CまたはC++関数ソース コードへのクライアント定義パスを識別する文字列として表現する方法。

LANGUAGE句でJAVAを指定するときには、Java外部ルーチンに外部関数名が必須になります。

この場合、external_function_nameは外部Java参照文字列として参照されます。

外部Java参照文字列は、JARファイル、JAR内のJavaクラス、およびJava UDFが実行されるときに呼び出されるクラス内のJavaメソッドを指定します。

  • 最初の部分はJAR_IDです。これは、関連付けられたJARファイルの登録名です。この名前は、外部プロシージャSQLJ.INSTALL_JARを使用して作成する必要があります。
  • 2番目の部分は、実行するJavaメソッドを格納するJARに含まれるJavaクラスの名前です。
  • 3番目の部分は、実行されるメソッドの名前です。

例えば、salesreportsというIDでデータベースに登録されたJARファイルの場合、JAR内のクラスにはformalという名前が付き、クラス内の呼び出されるメソッドはmonthendという名前で、文字列salesreports:formal.monthendは、Java UDFが実行されるときに呼び出しを実行するメソッドを詳細に定義します。

関数エントリ ポイント名 function_entry_point_name 関数のエントリ ポイント名の定義に使用する識別子。

関数エントリ ポイント名が関数に定義された関数名または特定関数名と異なる場合、関数エントリ ポイント名を指定する必要があります。

function_entry_
point_nameをCREATE FUNCTIONまたはREPLACE FUNCTIONのEXTERNAL句で複数指定することはできません。