SQLユーザー定義関数とラージ オブジェクト - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

ラージ オブジェクト パラメータまたはラージ オブジェクト戻り値のあるSQL UDFの使用上の特性は、他のすべてのUDFの使用上の特性と同じです。 一般的に、引数としてLOB値を受け入れるUDFは、そうでない場合にUDFが許可されるすべての文脈で指定できます。 さらに、LOB値を返すSQL UDFは、そのタイプの値が適切であり、その他の場合にUDFが許可されるすべての文脈で使用できます。

他の関数および演算子と同様に、Teradata DatabaseはSQL UDFの引数または戻り値に自動データ型変換を適用できます。 ラージ オブジェクトをUDFパラメータとして使用する場合は、自動データ型変換がパフォーマンスに与える影響に注意する必要があります。

例えば、正式なパラメータがBLOBタイプの関数には、VARBYTE列を実際の引数として渡すことができます。 Teradata DatabaseはVARBYTE値を一時BLOBに変換してから、それをSQL UDFに渡します。 一時BLOBもディスクに保存されるので、この変換によって大きなパフォーマンス コストが生じます。 これを防止するために、VARBYTE引数を明示的に受け入れるようにオーバーロードされた関数の作成を検討してください。

不適切な変換の可能性となる別の原因は、切捨てです。 宣言された長さは、データ型の指定の一部です。