17.00 - 17.05 - returnValueバッファの割り当て - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

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

FNC_GetArrayElementsを呼び出す前に、その構成要素の基になる型に対応するCデータ型を使用して、returnValueが指すバッファを割り当てる必要があります。要求された構成要素の数に応じたバッファを確実に割り当ててください。例えば、構成要素の基になる型がSQL INTEGERデータ型の場合は、次のようにバッファを宣言します。

INTEGER value;

構成要素の型がDISTINCT型の場合は、そのDISTINCT型を表わすCデータ型を使用してバッファを割り当てます。例えば、その構成要素がSQL SMALLINTデータ型を表わすDISTINCT型の場合は、次のようにバッファを宣言します。

SMALLINT value;

構成要素の基になる型が文字列の場合、FNC_GetArrayElementsはNULL終了文字列を返します。定義するバッファは、NULL終了を含めて入れることのできる十分な大きさのものでなければなりません。

構成要素の型がSTRUCTURED型の場合、FNC_GetArrayElementsはUDTハンドルを返します。STRUCTURED型の属性に関する記述情報を取得するには、UDTハンドルをFNC_GetStructuredAttributeInfoに渡します。詳細は、FNC_GetStructuredAttributeInfoを参照してください。

returnValueBufSize引数に対し渡す値がTeradata Databaseのデータ型の長さに一致するようにするには、sqltypes_td.hで定義されているデータ型長マクロを使用します。UDT要素型の場合、UDTハンドルが返されてからreturnValueバッファの合計サイズの計算にマクロSIZEOF_UDT_HANDLEを使用します。データ型長のマクロについての一覧は、FNC_GetStructuredAttributeを参照してください。

データの処理が完了したら、割り当てたリソースを確実に解放してください。