17.10 - SQL UDFに対するパラメータの渡し - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

パラメータをUDFに直接渡すと、VantageはパラメータのメタデータをStatement Infoパーセルに入れて返します(詳細は<Teradata® CLI V2メインフレーム接続システム、B035-2417>を参照)。外部UDFまたはメソッドにパラメータを渡すためのルールは、SQL UDFにも適用されます(SQL UDFの使用上のルールおよび関数呼び出し引数を参照)。

この例では、SQL UDFはオーバーロードされていないため、VantageはUDFに直接渡された?パラメータを使用してUDFを解決できます。Vantageは、UDFパラメータに関するパラメータのメタデータを、対象の位置に返します。

SELECT myudf(1, ?)
FROM t1;

この例ではSQL UDFがオーバーロードされているため、許容値に対して?パラメータを明示的にキャストして、PrepareモードでUDFを解決できるようにする必要があります。このようなキャストを指定しない場合、VantageはUDFを解決できないためリクエストはアボートし、システムはリクエスト側にエラーを返します。パラメータのメタデータのために、返されるメタデータのデータ型フィールドは、キャストの結果の型になります。

SELECT myudf(1, CAST(? AS INTEGER), col3)
FROM t1;