17.00 - 17.05 - DISTINCT型UDTの値へのアクセス - 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
日本語 (日本)

DISTINCT型UDTの値にアクセスするには、以下のようにします。

DISTINCT型 結果
LOBを表わすものでない場合
  1. DISTINCT型UDTの基礎となる型にマッピングされるCデータ型を使用してバッファを割り当てます。
  2. FNC_GetDistinctValueを呼び出すことにより、割り振ったバッファ内にUDTの値を入れます。
LOBを表わす場合
  1. DISTINCT型のロケータを入れるためのLOB_LOCATORを宣言します。
  2. FNC_GetDistinctInputLobを呼び出すことによって、そのLOB_LOCATORを、DISTINCT型UDTのLOBロケータに設定します。
  3. ラージ オブジェクトの値へのアクセスのステップを実行することによって、データを読み取ります。

FNC_GetDistinctValueおよびFNC_GetDistinctInputLobの詳細は、Cライブラリ関数を参照してください。

FLOATを表わすDISTINCT型の値へのアクセス方法を示すコードの一部を以下に示します。

void meters_t_toInches( UDT_HANDLE    *metersUdt,
                        FLOAT         *result,
                        char           sqlstate[6])
{
    FLOAT value;
    int length;
    /* Get the value of metersUdt. */
    FNC_GetDistinctValue(*metersUdt, &value, SIZEOF_FLOAT, &length);

    ...
}