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

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

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

パラメータを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;