パラメータをUDFに直接渡すと、Teradata DatabaseはStatement Infoパーセルにパラメータのメタデータを返します(詳細は<Teradata CLI V2リファレンス-メインフレーム接続システム>または<Teradata® CLI V2メインフレーム接続システム、B035-2417>を参照)。外部UDFまたはメソッドにパラメータを渡すためのルールは、SQL UDF(SQL UDFの使用上のルールおよび関数呼び出し引数を参照)にも適用されます。
この例では、SQL UDFはオーバーロードされていないため、Teradata DatabaseはUDFに直接渡された?パラメータを使用してUDFを解決できます。Teradata Databaseは、UDFパラメータに関するパラメータのメタデータを、対象の位置に返します。
SELECT myudf(1, ?) FROM t1;
この例ではSQL UDFがオーバーロードされているため、許容値に対して?パラメータを明示的にキャストして、PrepareモードでUDFを解決できるようにする必要があります。このようなキャストを指定しない場合、Teradata DatabaseはUDFを解決できないためリクエストはアボートし、システムはリクエスト側にエラーを返します。パラメータのメタデータのために、返されるメタデータのデータ型フィールドは、キャストの結果の型になります。
SELECT myudf(1, CAST(? AS INTEGER), col3) FROM t1;