オーバーロード関数の呼び出し - 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/rin1593638965306.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

同じ名前の関数が複数個存在する場合、Vantageが呼び出す関数は、次の手順で決定されます。

状況 结果
関数呼び出し中のどの引数もNULLキーワードではない場合 関数のうちの1つが、その関数呼び出しの対応する引数型と同一であるパラメータ型をもつ場合には、Vantageはこの関数を選択します。
その関数呼び出しの対応する引数型と同一であるパラメータ型をもつ関数がない場合には、Vantageは関数呼び出しの各引数に対し最初(左)から以下のテストを繰り返します。
  • 関数呼び出しの引数型が、いずれかの関数の対応するパラメータ型と、互換優先順位に従って一致する場合には、それらの関数を残し、それ以外を除外します。
  • 関数呼び出しの型が、それに対応するどの関数のパラメータ型とも互換優先順位どおりに一致しない場合には、エラーを返します。

互換性優先順位のルールの詳細は、互換データ型を参照してください。

関数呼び出し中のいずれかの引数がNULLキーワードである場合 関数呼び出しの最初(左端)の引数から順に、以下のテストがVantageによって反復実行されます。
  • 関数呼び出しの引数型が、いずれかの関数の対応するパラメータ型と、互換優先順位に従って一致する場合には、それらの関数を残し、それ以外を除外します。
  • 引数がNULLキーワードの場合には、そのNULLは任意のデータ型に一致するワイルドカードとして処理され、次の引数の処理に移ります。どの関数も除去されません。
  • 関数呼び出しの型が、それに対応するどの関数のパラメータ型とも互換優先順位どおりに一致しない場合には、エラーを返します。
各引数のテスト後、エラーが戻されない場合、Vantageでは以下のルールが適用されます。
  • 1つの関数が残った場合、Vantageはその関数を選択します。
  • 複数の関数が残った場合、システムはエラーを返します。

    このエラーを避けるためには、キーワードNULLを、使用するオーバーロードUDFの対応するパラメータのデータ型に明示的にキャストすることができます。

互換性優先順位のルールの詳細は、互換データ型を参照してください。