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

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