Hitachi

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


5.4.12 extdat文(拡張DAT形式の情報の記述)

DAT形式の入力データファイルで,次の拡張機能を使用する場合に指定します。

なお,囲み文字の変更,及びINTEGER,SMALLINTの列への小数点データの格納以外の拡張機能は,オペランドの指定有無に関係なくextdat文を指定すれば使用できます。

囲み文字とは,extdat文のencloseオペランドに指定した文字のことをいいます。オペランドを省略した場合は,引用符(")が囲み文字となります。

セパレータ文字の直前,直後のデータの前後を囲み文字で囲んだ場合,囲み文字は入力の対象にはなりません。ただし,囲み文字で囲まれた文字列内の囲み文字は,入力の対象となります。

なお,DAT形式の場合は,引用符が囲み文字となります(囲み文字の変更はできません)。

<適用基準>

入力データファイルがDAT形式で,上記の拡張機能を使用したい場合に指定します。

〈この項の構成〉

(1) 形式

 extdat 〔enclose=囲み文字〕
 
     〔decin={yes|no}〕

(2) 説明

(a) enclose=囲み文字

   〜<文字列>((1バイト))

各入力データの列値を囲んでいる囲み文字を指定します。

<規則>
  1. セパレータ文字の直前,直後のデータの前後を囲み文字で囲んでいる場合,その囲み文字は入力の対象にはなりません。

  2. 囲み文字と同じ値をデータとして扱う場合は,その囲み文字を2個連続で記述してください。例えば,アポストロフィ(')が囲み文字の場合は,「''」と2個連続で記述します。

  3. DAT形式と拡張DAT形式では,囲み文字の扱いに違いがあるので注意してください。文字データの入力と囲み文字の扱いについては,「DAT形式の場合」を参照してください。

  4. 次の文字は囲み文字として指定できません。

    ・空白,タブ,アスタリスク(*)

    ・セパレータ文字と同じ文字

  5. シフトJIS漢字コードの場合,次の文字は入力データのコードと重複する可能性があるので,囲み文字には適していません。

    ・入力データファイルのデータにある文字

    ・日本語入力時に文字コードが重なる文字

     ([,\,],^,_,',{,|,}, ̄)

  6. 囲み文字は1バイトのため,2バイトコードは指定できません。

(b) decin={yes|no

INTEGER及びSMALLINTの列に,小数点があるデータを格納するかどうかを指定します。

yes:

小数点があるデータを格納します。

yesを指定した場合,最初の小数点までをデータとして扱い,それ以降は無視してフォーマットのチェックもしません。格納される値は,小数点以下を切り捨てた整数値となります。

no:

小数点があるデータを格納しません。

noを指定した場合,小数点があるデータはINTEGER及びSMALLINTの列には格納しないで,エラーデータとします。

(3) 拡張機能の内容

(a) 文字データ型,各国文字データ型,混在文字データ型,及びBINARY型へのナル文字(0x00),改行記号(0x0a),及び復帰記号(0x0d0a)の入力

文字データ型,各国文字データ型,混在文字データ型,及びBINARY型の入力データが囲み文字で囲まれている場合,入力データ中にあるナル文字(0x00),改行記号(0x0a),及び復帰記号(0x0d0a)をデータとして扱います。囲み文字で囲まれていない場合,ナル文字,改行記号,及び復帰記号はデータの区切り,又は行の終端として扱われます。

例えば,"tokyo\0shibuyaku"というCHAR(16)のデータがあった場合,extdat文を指定すれば「tokyo\0shibuyaku」が入力されますが,extdat文を指定しないとこのデータは入力できません。

(b) 数データ型,日間隔データ型,及び時間隔データ型のデータ型に囲み文字(")が指定されているデータの入力

数データ型,日間隔データ型,及び時間隔データ型の入力データに,囲み文字(")が指定されていてもデータの入力ができます。なお,DAT形式の場合,データの入力はできません。

(c) 数データ型,日付データ型,日間隔データ型,時刻データ型,時間隔データ型,及び時刻印データ型の列の入力データ部の,半角空白及びタブの削除

数データ型,日付データ型,日間隔データ型,時刻データ型,時間隔データ型,及び時刻印データ型の列の入力データ部の,半角空白及びタブを削除します。データがすべて半角空白又はタブの場合については,「データロード時のナル値,及び既定値」を参照してください。

(d) 囲み文字の変更

encloseオペランドに指定した文字を囲み文字として扱います。

(e) 囲み文字そのものを入力

囲み文字を2個連続して記述すると,1個のデータとして扱います。なお,この規則は,マルチバイトコードも同様です。そのため,外字に割り当てたコードなどが囲み文字と一致した場合,不当に入力データエラーと扱われることがあります。この場合,囲み文字を変更する必要があります。