5.4.12 extdat文(拡張DAT形式の情報の記述)
DAT形式の入力データファイルで,次の拡張機能を使用する場合に指定します。
なお,囲み文字の変更,及びINTEGER,SMALLINTの列への小数点データの格納以外の拡張機能は,オペランドの指定有無に関係なくextdat文を指定すれば使用できます。
-
文字データ型,各国文字データ型,及び混在文字データ型へのナル文字(0x00),改行記号(0x0a),及び復帰記号(0x0d0a)の入力
-
数データ型,日間隔データ型,及び時間隔データ型のデータ型に囲み文字(")が指定されているデータの入力
-
数データ型,日付データ型,日間隔データ型,時刻データ型,及び時間隔データ型の列の入力データ部の,半角空白及びタブの削除
-
囲み文字の変更
-
囲み文字そのものを入力(囲み文字を2個連続させると,1個のデータとして扱われます)
-
INTEGER,SMALLINTの列への小数点データの格納
囲み文字とは,extdat文のencloseオペランドに指定した文字のことをいいます。オペランドを省略した場合は,引用符(")が囲み文字となります。
セパレータ文字の直前,直後のデータの前後を囲み文字で囲んだ場合,囲み文字は入力の対象にはなりません。ただし,囲み文字で囲まれた文字列内の囲み文字は,入力の対象となります。
なお,DAT形式の場合は,引用符が囲み文字となります(囲み文字の変更はできません)。
- <適用基準>
-
入力データファイルがDAT形式で,上記の拡張機能を使用したい場合に指定します。
- 〈この項の構成〉
(1) 形式
extdat 〔enclose=囲み文字〕 〔decin={yes|no}〕
(2) 説明
(a) enclose=囲み文字
〜<文字列>((1バイト))
各入力データの列値を囲んでいる囲み文字を指定します。
- <規則>
-
-
セパレータ文字の直前,直後のデータの前後を囲み文字で囲んでいる場合,その囲み文字は入力の対象にはなりません。
-
囲み文字と同じ値をデータとして扱う場合は,その囲み文字を2個連続で記述してください。例えば,アポストロフィ(')が囲み文字の場合は,「''」と2個連続で記述します。
-
DAT形式と拡張DAT形式では,囲み文字の扱いに違いがあるので注意してください。文字データの入力と囲み文字の扱いについては,「DAT形式の場合」を参照してください。
-
次の文字は囲み文字として指定できません。
・空白,タブ,アスタリスク(*)
・セパレータ文字と同じ文字
-
シフトJIS漢字コードの場合,次の文字は入力データのコードと重複する可能性があるので,囲み文字には適していません。
・入力データファイルのデータにある文字
・日本語入力時に文字コードが重なる文字
([,\,],^,_,',{,|,}, ̄)
-
囲み文字は1バイトのため,2バイトコードは指定できません。
-
(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個のデータとして扱います。なお,この規則は,マルチバイトコードも同様です。そのため,外字に割り当てたコードなどが囲み文字と一致した場合,不当に入力データエラーと扱われることがあります。この場合,囲み文字を変更する必要があります。