Hitachi

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


5.5.3 固定長データ形式の場合

固定長データ形式の場合,入力データは文字,又はデータベースに格納される形で記述します。

抽象データ型に格納するデータをコンストラクタ関数で生成する場合は,入力パラメタを文字データ,又は関数の引数の型で記述します。

なお,文字列形式の数値データ,及び文字列形式の文字データとは,それぞれ次の表に示すデータ型の列に格納する文字列データのことです。

表5‒30 文字列形式の数値データと文字列形式の文字データ

文字列形式の数値データ

文字列形式の文字データ

  • INTEGER

  • SMALLINT

  • DECIMAL

  • FLOAT

  • SMALLFLT

  • DATE

  • INTERVAL YEAR TO DAY

  • TIME

  • INTERVAL HOUR TO SECOND

  • TIMESTAMP

  • CHAR

  • VARCHAR

  • MCHAR

  • MVARCHAR

  • NCHAR

  • NVARCHAR

〈この項の構成〉

(1) 記述形式

入力データを文字で記述する場合は,「DAT形式の場合」を参照してください。データベースに格納される形で記述する場合は,「バイナリ形式の場合」を参照してください。

(2) 規則

(凡例)−:該当しません。

表5‒32 入力データを文字列形式で記述した場合の格納データ(固定長データ形式)

表の列のデータ型,又はコンストラクタ関数のパラメタのデータ型

列名文及びoption文の指定内容

入力データファイルの記述データ

格納データ

INTEGER,SMALLINT,DECIMAL,FLOAT,及びSMALLFLT

type=char(3)

1△△

各データ型の1

△△1

△1△

+△1

入力データエラー

1△1

type=char(3)

option文allspaceオペランドの指定あり

△△△

各データ型の「0」

option文allspaceオペランドの指定なし

△△△

入力データエラー

CHAR(7)及びMCHAR(7)

type=char(7)又はtype=char(7),mode=text

ABC△△△△

ABC△△△△

"ABC"△△

"ABC△△"

""ABC""

"ABC"△△

△△△△△△△

△△△△△△△

""△△△△△

△"△A△"△

△"△A△"△

type=char(7),mode=bin

ABC△△△△

ABC△△△△

"ABC"△△

"ABC"△△

"ABC△△"

"ABC△△"

""ABC""

""ABC""

△△△△△△△

△△△△△△△

""△△△△△

""△△△△△

△"△A△"△

△"△A△"△

NCHAR(3)

type=char(6)

あ▲▲

あ▲▲

"あ"▲

"あ"▲

"あ▲"

あ▲▲

""あ""

"あ"▲

▲▲▲

▲▲▲

""▲▲

""▲▲

VARCHAR(7)及びMVARCHAR(7)

type=char(7)又はtype=char(7),enclose_del=yes

ABC△△△△

ABC(3バイト)

"ABC"△△

"ABC△△"

ABC△△(5バイト)

""ABC""

"ABC"(5バイト)

△△△△△△△

△(1バイト)

""△△△△△

(0バイト)

△"△A△"△

△"△A△"

type=char(7),enclose_del=no

ABC△△△△

ABC(3バイト)

"ABC"△△

"ABC"(5バイト)

"ABC△△"

"ABC△△"(7バイト)

""ABC""

""ABC""(7バイト)

△△△△△△△

△(1バイト)

""△△△△△

""(2バイト)

△"△A△"△

△"△A△"△

NVARCHAR(3)

type=char(6)

あ▲▲

あ▲▲(6バイト)

"あ"▲

"あ"▲(6バイト)

"あ▲"

あ▲(4バイト)

""あ""

"あ"(4バイト)

▲▲▲

▲▲▲(6バイト)

""▲▲

""▲▲(6バイト)

DATE

type=char(12)

2003-12-31△△

2003-12-31

△△2003-12-31

△2003-12-31△

INTERVAL YEAR TO DAY

type=char(11)

00010101.△△

+00010101.

△△00010101.

△00010101.△

TIME

type=char(10)

08:45:00△△

08:45:00

△△08:45:00

△08:45:00△

INTERVAL HOUR TO SECOND

type=char(9)

010101.△△

+010101.

△△010101.

△010101.△

TIMESTAMP

type=char(21)

1991-01-01△11:22:33△△

1991-01-01△11:22:33

△△1991-01-01△11:22:33

△1991-01-01△11:22:33△

BLOB

type=char(13)

c:\pdload\file01△△

c:\pdload\file01のデータ

△△c:\pdload\file01

エラー

△c:\pdload\file01△

BINARY(7)

type=char(7)

△△△△△△△

△△△△△△△

(凡例)

△:半角の空白(0x20)

▲:全角の空白

(3) 固定長データ形式固有の入力データ型

固定長データ形式の入力データファイルは,表の列データ型と同じデータ形式,又は列データ型にデータ変換可能な文字列で作成しますが,DECIMAL型の列に格納する入力データ型として,ADEC(ASCII CODE DECIMAL)型とBDEC(BINARY DECIMAL)型を使用できます。

(a) ADEC型(ASCII CODE DECIMAL)

ADEC型は,文字列形式で数値データを記述します。データ中には小数点を持たないで,列構成情報ファイルで小数点の位置を指定するデータ型です。ADEC型の形式を次に示します。

[図データ]

<規則>
  • 使用できる文字を次に示します。

    +,−,空白(0x20),タブ(0x09),ナル文字(0x00),0〜9

    ただし,データ中に1バイト以上の空白,タブ,又はナル文字を含むと,小数点を持たない整数値と解釈します。そのため,typeオペランドで指定した精度と位取りで小数点位置を解釈するデータを作成する場合は,「0」でパディングする必要があります。

  • 符号(+又は−)だけの入力データは,入力データエラーとなります。

  • option文のallspaceオペランド指定ありの場合だけ,空白だけの入力データを許可します。この場合,0が格納されます。allspaceオペランド指定なしの場合は入力データエラーとなります。

  • 入力データ中には小数点は記述しません。列構成情報ファイルのtypeオペランドで精度と位取りを指定します。精度(m)と位取り(n)の関係を次に示します。

    1≦m≦38  0≦n≦38  m≧n

  • 入力データに符号(+又は−)を持つ場合,精度(m)には符号部1バイトを含めたけた数を指定します。

  • typeオペランドで指定した精度と位取りは,格納する列のDECIMAL型にデータ変換可能(けた落ちが発生しない)値を指定します。データ変換不可の場合,制御文エラーとなります。

<データの格納例>

次の場合のデータの格納例を次の表に示します。

  • 格納する表の列定義:DECIMAL(10,4)

  • 入力データ:ADEC型

  • 列構成情報ファイルの指定:type=adec(10,4)

    表5‒33 ADEC型で記述したデータをDECIMAL(10,4)に格納した場合の例

    入力データファイルに記述したデータ

    DECIMAL(10,4)に格納するデータ

    説明

    1△△△△△△△△△

    +000001.0000

    1バイトでも空白を含むと,typeオペランドに指定した精度と位取りは無視され,小数点がない値と解釈します。

    △△△△△△△△△1

    +000001.0000

    △△△△△1△△△△

    +000001.0000

    △△△△△10000

    +010000.0000

    000001△△△△

    +000001.0000

    1000000000

    +100000.0000

    0〜9だけの場合,typeオペランドに指定した精度と位取りで小数点の位置を決定します。

    0000000001

    +000000.0001

    0000010000

    +000001.0000

    +000010000

    +000001.0000

    0〜9の値と符号部の場合,小数点の位置はデータの後方から解釈します。

    -000010000

    -000001.0000

(凡例)

△:空白(0x20)

(b) BDEC型(BINARY DECIMAL)

BDEC型は,2進数で記述されたバイナリデータを10進数で記述し,10進数のけた数に合わせて,表の列データ型から小数点の位置を決定するデータ型です。BDEC型は先頭1ビットを符号として扱います。形式を次に示します。

[図データ]

<規則>
  • 列構成情報ファイルのtypeオペランドでバイナリデータの長さを指定します。

  • BDEC型のけた数(m)を次に示します。

    32ビットモードの場合:1〜4バイト

    64ビットモードの場合:1〜8バイト

  • BDEC型に実際に指定できる値を次に示します。

    32ビットモードの場合:-2147483648〜2147483647

    64ビットモードの場合:-9223372036854775808〜9223372036854775807

  • DECIMAL列に実際に格納できる値を次に示します。

    32ビットモードの場合:精度は10けたまで

    64ビットモードの場合:精度は19けたまで

<データの格納例>

次の場合のデータの格納例を次の表に示します。

  • 入力データ:4バイトの2進数

  • 列構成情報ファイルの指定:type=bdec(4)

    表5‒34 BDEC型で記述したデータをDECIMAL列に格納した場合の例

    入力データファイルに記述したデータ

    格納先の列定義

    格納するデータ

    0xff 0xff 0xfc 0xf7

    DECIMAL(10,0)

    -0000000777

    DECIMAL(10,2)

    -00000007.77

    DECIMAL(10,10)

    -0.0000000777

このように,同じ値でも格納先のDECIMAL列の精度と位取りによって,格納するデータが異なります。

(4) 記述例

固定長データ形式のデータ記述例を次の図に示します。

図5‒17 固定長データ形式のデータ記述例

[図データ]