PERIOD型の引数の値へのアクセス - 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

PERIOD型の引数の値にアクセスするには、次のようにします。

  1. SQL要素型にマッピングされるCデータ型で表現されるのと同様に、PERIOD型の最初と最後の境界までを格納するのに十分なバッファを割り当てます。

    例えば、PERIOD(TIME WITH TIME ZONE)引数を指定するCREATE FUNCTION文を例に考えてみましょう。引数の値にアクセスするには、関数が2つのANSI_Time_WZoneの値を格納するのに十分な領域のバッファを割り当てる必要があります。ここで、ANSI_Time_WZoneはCデータ型で、TIME WITH TIME ZONEにマッピングされます。

  2. FNC_GetInternalValueを呼び出すことにより、割り振ったバッファ内にPERIOD型の値を入れます。

FNC_GetInternalValueの詳細については、Cライブラリ関数を参照してください。

PERIOD(DATE)型の値のアクセス方法を示すコードの一部を、以下に示します。

void check_duration( PDT_HANDLE    *duration,
                     INTEGER       *result,
                     char           sqlstate[6])
{
    void * tmpBuf = 0;
    int bufSize = 0;
    int length;
    /* Get the value of the PERIOD(DATE) duration. */
    bufSize = SIZEOF_DATE * 2;
    tmpBuf = FNC_malloc(bufSize);
    FNC_GetInternalValue(*duration, tmpBuf, bufSize, &length);
    ...
}