SQL UDFは、ユーザーが定義する関数であり、SQL式を使用して記述されます。VantageがSQL UDF式を評価するとき、渡された引数を使って関数を呼び出します。関数呼び出しの引数には、次のルールが適用されます。
- 引数は、関数で宣言されたパラメータと同じ順序でカンマで区切った式にする必要があります。
- SQL UDFに渡す引数の数は、関数で宣言したパラメータ数と同じにする必要があります。
- 引数のデータ型は、関数の対応するパラメータ宣言と互換性があり、互換性のあるタイプに適用される優先順位のルールに従う必要があります。
対応するパラメータ タイプとの互換性がない引数を渡す場合は、CASTを使用して引数を適切なタイプに明示的に変換する必要があります。詳細は、<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>の「明示的なデータ型の変換におけるCAST」を参照してください。
- NULL引数は、任意のデータ型のパラメータと互換性があります。NULL引数は、明示的に渡すことも、引数を省略することにより渡すこともできます。
- SQL式の任意の形式を引数として使用できますが、これには3つの重要なルールがあります。
- SQL式をブール値式(つまり、条件式)にしてはいけない。
- 式が非確定的なSQL式(ランダム関数や非確定的なUDFが関与している式)の場合、式はRETURN文で何度も使用されるパラメータと対応してはいけない。
- SQL式をスカラーsubqueryにしてはいけない。
SQL UDFが呼び出されると、Vantageは以下の場所でUDFを検索します。
- 指定されたデータベース内(関数呼び出しがデータベース名で修飾されている場合)。
- 現在のデータベース内。
- SYSLIBデータベース内。
SQL UDFの結果のタイプは、CREATE FUNCTION文のRETURNS句で指定されている戻りタイプに基づきます。
SQL UDFのデフォルト タイトルは、次のようになります。
UDF_name (argument_list )