Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


付録B.3 SQL_COLUMNSの内容

SQL_COLUMNSには,実表,ビュー表,ディクショナリ表(実表),システム表(実表),ディクショナリ表,およびシステム表の列の定義情報が格納されています。1行に1列分の情報が格納されています。

SQL_COLUMNSの内容を次の表に示します。

表B‒4 SQL_COLUMNSの内容

項番

列名

データ型

格納されている情報

1

TABLE_SCHEMA

VARCHAR(100)

スキーマ名

2

TABLE_NAME

VARCHAR(100)

表識別子

3

COLUMN_NAME

VARCHAR(100)

列名

4

COLUMN_ID

SMALLINT

列ID

5

TABLE_ID

SMALLINT

表ID

  • 0x00020001〜:ディクショナリ表(実表)

  • 0x000200C9〜:システム表(実表)

  • 0x00020191〜:HADBユーザが定義した実表

  • 0x00040001〜:ディクショナリ表およびシステム表

  • 0x00040401〜:HADBユーザが定義したビュー表

6

DATA_TYPE_CODE

SMALLINT

列のデータ型

  • 1130x71):DATE

  • 1210x79):TIME

  • 1250x7D):TIMESTAMP

  • 1450x91):VARBINARY

  • 1490x95):BINARY

  • 1930xC1):VARCHAR

  • 1970xC5):CHAR

  • 2250xE1):DOUBLE PRECISIONFLOAT

  • 2290xE5):DECIMALNUMERIC

  • 2410xF1):INTEGER

  • 2450xF5):SMALLINT

配列型の列の場合は,要素データ型が格納されます。

7

DATA_LENGTH

SMALLINT

列の定義長

列の定義長は,列のデータ型(配列型の列の場合は,要素データ型)によって異なります。

列のデータ型が次に示すどれかの場合

列の定義長がバイト単位で格納されます。

  • INTEGER

  • SMALLINT

  • CHAR

  • VARCHAR

  • DATE

  • DOUBLE PRECISION

  • FLOAT

  • BINARY

  • VARBINARY

列のデータ型がTIME(p)の場合

次に示す計算式で求めた値が格納されます。

3+↑p÷2↑

p:0,3,6,9または12

列のデータ型がTIMESTAMP(p)の場合

次に示す計算式で求めた値が格納されます。

7+↑p÷2↑

p:0,3,6,9または12

列のデータ型がDECIMAL,NUMERICの場合

最初の1バイト目に位取りが格納され,2バイト目に精度が格納されます。

CREATE VIEW文の問合せ式本体の選択式に,四則演算の除算結果のデータ型がDECIMAL型となる値式が含まれている場合,次に示す2つの値が不一致になることがあります。

  • ここに格納されている位取りの値

  • ビュー表の検索時に,ビュー表を等価変換した内部導出表の導出列の位取りの値

詳細については,マニュアルHADB SQLリファレンス除算結果のデータ型がDECIMAL型の場合の留意事項ビュー表を検索する場合を参照してください。

8

MAX_ELEMENT

SMALLINT

配列型の列の最大要素数

配列型の列の場合

2〜30,000の整数が格納されます。

配列型以外の列の場合

1が格納されます。

9

IS_NULLABLE

CHAR(1)

列に対する非ナル値制約定義の指定

  • 'Y'

    ナル値を許容する(非ナル値制約定義の指定なし)

  • 'N'

    ナル値を許容しない(非ナル値制約定義の指定あり)

FIX表の場合は,すべての列が'N'となります。

10

COLUMN_OFFSET

SMALLINT

列オフセット(表の先頭から何バイトの位置で列が始まっているかの情報)

FIX表ではない表(表オプションBRANCH ALLの指定なし)の場合は,ナル値が格納されます。

11

BRANCH

CHAR(1)

列定義のBRANCHの指定値

  • 'Y'YES

  • 'N'NO

  • 'A'AUTO

  • 'O'VARCHAR型の列,またはVARBINARY型の列でBRANCHの指定なし

VARCHAR型およびVARBINARY型以外の列の場合は,ナル値が格納されます。

また,カラムストア表の列の場合もナル値が格納されます。

12

DEFAULT_VALUE

VARCHAR(32000)

DEFAULT句に指定された既定値

実表の定義時にDEFAULT句に指定された既定値が格納されます。

  • 定数

    定数を指定した場合に格納されます。詳細については,「表B‒5 定数を指定した場合にDEFAULT_VALUEの列に格納される値」を参照してください。

  • CURRENT_DATE

    CURRENT_DATEを指定した場合に格納されます。

  • CURRENT_TIME(p)

    CURRENT_TIME(p)を指定した場合に格納されます。pは小数秒精度を示します。

    p=0の場合は,CURRENT_TIMEとなります。

    p=3,6,9および12の場合は,CURRENT_TIME(p)となります。

  • CURRENT_TIMESTAMP(p)

    CURRENT_TIMESTAMP(p)を指定した場合に格納されます。pは小数秒精度を示します。

    p=0の場合は,CURRENT_TIMESTAMPとなります。

    p=3,6,9および12の場合は,CURRENT_TIMESTAMP(p)となります。

  • CURRENT_USER

    CURRENT_USERを指定した場合に格納されます。

  • ナル値

    NULLを指定した場合に格納されます。

なお,ビュー表の列,ディクショナリ表(実表)の列,システム表(実表)の列,およびDEFAULT句の指定がない実表の列の場合は,ナル値が格納されます。

13

IS_DEFAULT_COLUMN

CHAR(1)

DEFAULT句の指定有無

  • 'Y'

    実表の定義時にDEFAULT句を指定した列

  • ナル値

    実表の定義時にDEFAULT句を指定していない列

ビュー表の列,ディクショナリ表(実表)の列,およびシステム表(実表)の列の場合も,ナル値が格納されます。

14

IS_PRIMARY_KEY_COLUMN

CHAR(1)

主キーを構成する列かどうか

  • 'Y'

    主キーを構成する列

  • ナル値

    主キーを構成しない列

ビュー表の列,ディクショナリ表(実表)の列,およびシステム表(実表)の列の場合も,ナル値が格納されます。

15

PRIMARY_KEY_COLUMN_SEQUENCE_NUMBER

SMALLINT

主キーの構成順序

主キーを構成する列の順序が,1から昇順で格納されます。

なお,ビュー表の列,ディクショナリ表(実表)の列,システム表(実表)の列,および主キーを構成しない実表の列の場合は,ナル値が格納されます。

16

N_FOREIGN_KEY_COLUMN

SMALLINT

この列を使用している外部キーの数

この列を使用している外部キーの数が格納されます。

なお,次に示す列の場合は,ナル値が格納されます。

  • ビュー表の列

  • ディクショナリ表(実表)の列

  • システム表(実表)の列

  • 外部キーを構成しない実表の列

17

IS_ARCHIVE_RANGE_COLUMN

CHAR(1)

アーカイブレンジ列かどうか

  • 'Y'

    アーカイブレンジ列である

  • ナル値

    アーカイブレンジ列ではない

なお,次に示す列の場合は,ナル値が格納されます。

  • ビュー表の列

  • ディクショナリ表(実表)の列

  • システム表(実表)の列

18

COMPRESSION_TYPE

VARCHAR(32)

列定義のCOMPRESSION TYPEの指定値

カラムストア表の定義時に,圧縮方式指定に指定された内容が格納されます。

なお,次に示す列の場合は,ナル値が格納されます。

  • ビュー表の列

  • ディクショナリ表(実表)の列

  • システム表(実表)の列

  • ローストア表の列

DEFAULT句に定数を指定した場合に,DEFAULT_VALUEの列に格納される値を次の表に示します。

表B‒5 定数を指定した場合にDEFAULT_VALUEの列に格納される値

項番

既定値に仮定されるデータ型

DEFAULT_VALUEの列に格納される値

データ長(単位:バイト)

格納される値の文字形式の例

1

数データ

INTEGER

指定された既定値を文字形式に変換した長さ

12345

2

SMALLINT

12345

3

DECIMAL

12.345

4

DOUBLE PRECISION

-1234567890.1234567E-123

5

文字データ

CHAR

指定された既定値を文字形式に変換した長さ+2

'ABCD'

6

VARCHAR

7

日時データ

DATE

16

DATE'YYYY-MM-DD'

8

TIME(p)

  • pが0のとき:

    14

  • pが0以外のとき:

    15+p

TIME'hh:mm:ss.nn...n'※1,※2

9

TIMESTAMP(p)

  • pが0のとき:

    30

  • pが0以外のとき:

    31+p

TIMESTAMP'YYYY-MM-DDhh:mm:ss.nn....n'※1,※2

10

バイナリデータ

BINARY

  • 2進形式のバイナリデータの場合:

    指定された既定値のデータ長×8+3

  • 16進形式のバイナリデータの場合:

    指定された既定値のデータ長×2+3

  • 2進形式のバイナリデータの場合:

    B'01010101'

  • 16進形式のバイナリデータの場合:

    X'010203'

11

VARBINARY

(凡例)

p:小数秒精度(0,3,6,9または12)

YYYY:年

MM:月

DD:日

△:空白

hh:時

mm:分

ss:秒

nn...n:小数秒

注※1

DEFAULT句を指定した列の小数秒精度が0の場合は,秒(ss)と小数秒(nn...n)の間のピリオド( . )は省略されます。

注※2

既定値の小数秒精度が,DEFAULT句を指定した列の小数秒(nn...n)の桁数に満たない場合は,満たない桁数分,右側に0が補われます。

既定値の小数秒精度が,DEFAULT句を指定した列の小数秒(nn...n)の桁数を超える場合は,超えた桁数分,値が切り捨てられます。