17.00 - 17.05 - 使用上の注意 - 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
日本語 (日本)

この関数をSQLTABLEパラメータ スタイルのテーブル演算子で呼び出さない場合には、FNC_TblOpGetColDefがエラーを設定します。

FNC_TblOpGetColDefを呼び出す前に、以下の関数およびマクロを呼び出し、列定義を返すバッファにスペースを割り当てる必要があります。不必要なFNC呼び出しによるオーバーヘッドを避けるため、列数を1度取得した後に保存して複数回使用します。

FNC_TblOpColumnDef_t *coldef;

int ColCount = FNC_TblOpGetColCount(0, 'R');
coldef = FNC_malloc(TblOpSIZECOLDEF(ColCount));

FNC_TblOpGetColCount関数は入力ストリーム内の列数を取得し、TblOpSIZECOLDEFは入力ストリームの列定義を保存するのに必要なサイズをバイト単位で計算します。

メモリを割り当てた後は、以下のマクロを使用してデータ構造体を初期化します。

TblOpINITCOLDEF(coldef, ColCount);

初期設定の後は、FNC_TblOpGetColDef関数を呼び出すことができます。

FNC_TblOpGetColDef(0, 'R', coldef);

テーブル演算子をcoldefの列定義で処置した後は、メモリを解放する必要があります。

FNC_free(coldef);