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_CallSPのdtype[]引数を参照してください。
- 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を参照してください。
|