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
日本語 (日本)

FNC_TblGetColDefは、すべての結果列の定義を含むFNC_ColumnDef_t構造体を指すポインタを戻します。

FNC_TblGetColDefを呼び出すテーブル関数が動的な結果行指定を持つテーブル関数でない場合、FNC_TblGetColDefはNULLポインタを戻します。

FNC_ColumnDef_tは、次のように定義されています。

typedef struct
{
   int    num_columns;
   parm_t column_types[1];
} FNC_ColumnDef_t;
メンバー 指定内容
num_columns column_types配列内のエントリの数。テーブル関数の実行のための結果列の数と同じです。
column_types 各結果列のデータ型と属性を提供するparm_t配列。

parm_t構造体は、sqltypes_td.hで以下のように定義されています。

typedef struct parm_t
{
  dtype_et    datatype;
  dmode_et    direction;
  charset_et  charset;
  union {
    long  length;
    int   intervalrange;
    int   precision;
    struct {
      int  totaldigit;
      int  fracdigit;
    } range;
  } size;
} parm_t;
説明
  • datatypeは、列のデータ型を指定します。sqltypes_td.hヘッダー ファイルは、dtype_etを以下のように定義します。
    typedef int dtype_et;
  • 有効な値は、sqltypes_td.hのdtype_en列挙定数で以下のように定義されています。有効な値の一覧は、FNC_CallSPdtype[]引数を参照してください。

  • charsetは、CHARまたはVARCHARデータの文字セットを指定します。

    sqltypes_td.hヘッダー ファイルは、charset_etを以下のように定義しています。

    typedef int charset_et;

    有効な値は、sqltypes_td.hのcharset_en列挙定数で以下のように定義されています。

    typedef enum charset_en
    {
       UNDEF_CT=0,
       LATIN_CT=1,
       UNICODE_CT=2,
       KANJISJIS_CT=3,
       KANJI1_CT=4
    } charset_en;
  • size.lengthは、CHAR、VARCHAR、またはBYTE型の長さを指定します。
  • size.intervalrangeは、INTERVAL型の範囲を指定します。例えば、INTERVAL YEAR(4)の場合は4です。
  • size.precisionは、TIME型またはTIMESTAMP型の精度を指定します。例えば、TIME(4)の場合は4です。
  • size.range.totaldigitは、DECIMAL (m,n)型またはINTERVAL SECOND (m,n)型の値mを指定します。
  • size.range.fracdigitは、DECIMAL (m,n)型またはINTERVAL SECOND (m,n)型の値nを指定します。
parm_t構造体の方向指定メンバーでは、結果列の定義に関する情報が提供されません。parm_t構造体の方向指定メンバーの詳細については、FNC_CallSPを参照してください。