Hitachi

ノンストップデータベース HiRDB Version 9 コマンドリファレンス(Windows(R)用)


5.5.2 バイナリ形式の場合

バイナリ形式の場合,入力データはデータベースへ格納される形式で記述します。記述方法を次に示します。

〈この項の構成〉

(1) 記述形式

(a) 列データの記述形式

各データ型に対する列データ・パラメタの記述形式(バイナリ形式)を次の表に示します。

表5‒29 各データ型に対する列データ・パラメタの記述形式(バイナリ形式)

データ型・パラメタ型

列データ記述形式

数データ

INTEGER,SMALLINT

[図データ]

DECIMAL(m,n)

1≦m≦38

0≦n≦38

m≧n

[図データ]

FLOAT,SMALLFLT

[図データ]

文字データ,各国文字データ,混在文字データ※1

CHARACTER(n),VARCHAR(n),MCHAR(n),MVARCHAR(n)

[図データ]

NCHAR(n),NVARCHAR(n)

[図データ]

文字データ※2

CHARACTER(n),VARCHAR(n)

[図データ]

日付データ

DATE

[図データ]

日間隔データ

INTERVAL YEAR TO DAY

[図データ]

時刻データ

TIME

[図データ]

時間隔データ

INTERVAL HOUR TO SECOND

[図データ]

時刻印データ

TIMESTAMP(p)

[図データ]

BINARYデータ,BINARY属性データ

BINARY

[図データ]

XML型のBINARY属性パラメタ

[図データ]

LOBデータ,LOB属性データ

BLOB

[図データ]

注※1

文字コード変換なし又は変換後もデータ長が変化しない文字コード変換をする場合

注※2

変換後にデータ長が変化する文字コード変換をする場合

(b) 入力パラメタの記述形式

入力パラメタの記述方法を次に示します。

  • 抽象データ型に格納する値を生成するコンストラクタ関数の入力パラメタを,関数のパラメタ型と同じ構造で記述します。

  • 入力パラメタの順序とコンストラクタ関数の引数の順序は同じにしてください。

  • 格納先の列が抽象データ型の場合,コンストラクタ関数は抽象データ型と同じ名称の関数を使用します。引数が異なる同一名称のコンストラクタ関数が複数ある場合や,抽象データ型の名称とは異なるコンストラクタ関数を使用する場合は,使用する関数名をナル値・関数情報ファイルに指定してください。

  • 入力パラメタが複数ある場合,パラメタ値とパラメタ値の間は,空白を入れないで詰めます。

(2) 規則

(3) 記述例

バイナリ形式のデータ記述例を次の図に示します。

図5‒16 バイナリ形式のデータ記述例

[図データ]

  1. 入力データの上段はデータを,下段は格納される値を示します。

  2. それぞれのデータ型は,NCHAR(5),INTEGER,SMALLFLT,VARCHARの順です。

  3. 各国文字データはシフトJISコードです。

(4) -kオプションにv,又はdを指定した場合のLOBデータ,及びLOBパラメタの記述方法

(a) -k vの場合

-kオプションにvを指定した場合,LOBデータの入力ファイル名とLOBパラメタのデータは,入力データファイルに直接記述します。

この方法は,-kオプションにfを指定した場合に比べて,LOB入力ファイルの入出力時間が削減できます。

  • 規則

  1. LOBデータ及びLOBパラメタは,行データ中の該当列に4バイトの長さ部を持ち,行データの直後にデータ部を持つ形式で指定します。指定順序は行データの列順です。

  2. LOBデータ又はLOBパラメタがナル値の場合は,長さ部に−1を指定します。ナル値・関数情報ファイル及び関数情報ファイルによるナル比較値は無視されます。データ部は指定しません。

  3. LOBデータ又はLOBパラメタが0バイトの場合は,長さ部に0を指定します。データ部は指定しません。

  • 記述例

  • BLOBを入力とする抽象データ型の列を一つ持つ表の場合

    表定義:CREATE TABLE T1(C1 INTEGER,C2 SGMLTEXT,C3 DEC(7,0))

    [図データ]

  • BLOBを入力とする抽象データ型の列を二つ持つ表の場合

    表定義:CREATE TABLE T2(C1 SGMLTEXT,C2 INTEGER,C3 SGMLTEXT)

    [図データ]

  • LOB列とBLOBを入力とする抽象データ型の列を持つ表の場合

    表定義:CREATE TABLE T3(C1 INTEGER,C2 BLOB(100),C3 SGMLTEXT)

    [図データ]

(b) -k dの場合

-k オプションにdを指定した場合,入力データファイルには,LOBデータ格納ファイル名称でなく,データそのものを記述します。

  • 規則

  1. LOBデータ,LOBパラメタデータは行データ中の該当列に4バイトの長さ部を保持し,行データの直後にデータ部を持つ形式で指定してください。

  2. 入力データファイルの指定順序は次に示す規則に従ってください。

    [行データ] [LOBパラメタデータ] [LOBデータ]
        1                2             3

    [説明]

    1. 長さ部は行データ中に列定義順で指定します。

    2. LOBパラメタデータは,行データの直後に列定義順で指定します。

    3. LOBデータは「2.」に続いて列定義順に指定します。

  3. LOBデータ,LOBパラメタデータがナル値の場合は,4バイトの長さ部に−1を指定してください。ナル値・関数情報ファイルによるナル比較値は無視します。なお,この場合データ部はありません。

  4. LOBデータ,LOBパラメタデータが0バイトの場合は,長さ部に0を指定してください。なお,この場合データ部はありません。

  • 記述例

  • LOB列を一つ持つ表の場合

    表定義:CREATE TABLE T1(C1 BLOB(100),C2 INTEGER);

    [図データ]

  • LOB列を二つ持つ表の場合

    表定義:CREATE TABLE T2(C1 BLOB(100),C2 INTEGER,C3 BLOB(100));

    [図データ]

  • LOB列を二つとLOBを入力とする抽象データ型の列を持つ表の場合

    表定義:CREATE TABLE T3(C1 BLOB(100),C2 INTEGER,C3
           SGMLTEXT,C4 BLOB(100));

    [図データ]