17.00 - 17.05 - オーバーロード関数の呼び出し - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

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

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

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

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

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

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