オーバーロード関数の呼び出し - Teradata Database - Teradata Vantage NewSQL Engine

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/uhh1512082756414.ditamap
dita:ditavalPath
ja-JP/uhh1512082756414.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

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

状況 结果
関数呼び出し中のどの引数もNULLキーワードではない場合 関数のうちの1つが、その関数呼び出しの対応する引数型と同一であるパラメータ型をもつ場合には、Teradata Databaseはこの関数を選択します。

その関数呼び出しの対応する引数型と同一であるパラメータ型をもつ関数がない場合には、Teradata Databaseは関数呼び出しの各引数に対し最初(左)から以下のテストを繰り返します。

  • 関数呼び出しの引数型が、いずれかの関数の対応するパラメータ型と、互換優先順位に従って一致する場合には、それらの関数を残し、それ以外を除外します。
  • 関数呼び出しの型が、それに対応するどの関数のパラメータ型とも互換優先順位どおりに一致しない場合には、エラーを返します。

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

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

各引数のテスト後、エラーが戻されない場合、Teradata Databaseでは以下のルールが適用されます。

  • 1つの関数が残った場合、Teradata Databaseはその関数を選択します。
  • 複数の関数が残った場合、Teradata Databaseはエラーを返します。

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

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