DISTINCT型UDTの値へのアクセス - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/rin1593638965306.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1147
Product Category
Software
Teradata Vantage

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);

    ...
}