EXTERNAL BODY REFERENCE句 - 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

必須のEXTERNAL BODY REFERENCE句では、関数がTeradata Databaseの外部にあることを宣言し、実行に必要なすべてのファイル構成要素の場所を示します。

外部関数名は、オプションです。指定する場合は、CREATE FUNCTIONまたはREPLACE FUNCTIONプロセスの一部として検索およびコンパイルされるクライアント システム上のCまたはC++ソース コードの名前を指定しなければなりません。

すべての関数構成要素の場所を指定するために外部関数名だけでは不十分な場合、それらの各要素へのパスを明示的に指定する文字列リテラルを指定する必要があります。外部文字列リテラルを参照してください。

いずれの場合にも、SQL文から関数を呼び出すときに指定する識別子はfunction_nameです。

オプションで、この句に対して以下のオプションのいずれかまたは両方を指定できます。
  • 外部関数名
  • パラメータ形式
外部関数名を指定する方法はいくつかあります。詳細については、以下を参照してください。

以下の表では、この句で指定できるオプションをまとめます。

CREATE FUNCTIONに指定する句 結果
EXTERNAL
  • SPECIFIC句を指定した場合、CまたはC++関数名は、specific_function_nameと一致しなければなりません。
  • SPECIFIC句を指定しない場合、CまたはC++関数名は、function_nameと一致しなければなりません。

クライアントがメインフレーム接続の場合、CまたはC++関数名はソースのDDNAMEでなければなりません。

EXTERNAL NAME external_function_name CまたはC++関数名は、function_nameと一致しなければなりません。

クライアントがメインフレーム接続の場合、function_nameはソースのDDNAMEでなければなりません。

EXTERNAL NAME 'string' 'string'はfunction_entry_nameにFオプションを明示することによって、CまたはC++関数名を指定できます。その名前は、CまたはC++関数名と一致しなくてはなりません。

'string'の最大長は1,000文字です。

インクルード、ライブラリ、オブジェクト、パッケージ、ソースのファイル名も指定しなければ、Fオプションを'string'に指定することはできません。Teradata Databaseは、リンク先ファイル名を1つ以上必要とします。

'string'でfunction_entry_nameを指定しない場合は、以下のルールがC関数名に適用されます。

  • SPECIFIC句を指定した場合、CまたはC++関数名は、specific_function_nameと一致しなければなりません。
  • SPECIFIC句を指定しない場合、CまたはC++関数名は、function_nameと一致しなければなりません。

詳細については、<Teradata Vantage™- SQL外部ルーチン プログラミング、B035-1147>を参照してください。

Java外部プロシージャには、これらの指定は使用できません。

関数のパラメータ形式は、この句またはOPTIONAL FUNCTION CHARACTERISTICS句のどちらにも指定できますが、関数のパラメータ形式を指定できるのは定義の中で一度だけです。詳細については、PARAMETER STYLE句を参照してください。