8.9.17 fixtext_option文(固定長データ形式の入力データファイル生成時の出力データに関する記述)
-W fixtextオプションを指定して,固定長データ形式の入力データファイルを生成する場合,出力データについての情報を指定します。
- <適用基準>
-
固定長データ形式の入力データファイルを生成する場合(-W fixtextオプションを指定する場合),出力データを編集するときに指定します。
- <規則>
-
-
fixtext_option文は一つだけ指定できます。
-
オペランドを二つ以上指定する場合,オペランド間を空白文字(0x20)で区切ってください。
-
オペランドの指定がない場合,fixtext_option文は指定しないでください。
-
(1) 形式
fixtext_option 〔cntlcode={nocheck|check|replace〔,置き換え文字〕}〕 〔enclose=囲み文字〕 〔format=データ型,出力形式〕
(2) 説明
(a) cntlcode={nocheck|check|replace〔,置き換え文字〕}
データ型が文字データ型,各国文字データ型,及び混在文字データ型の場合,文字データ中に制御文字(ASCIIコード0x00〜0x1f)を含む列があるときの,データ出力の制御方法を指定します。
- nocheck:
-
制御文字があるかどうかをチェックしないで,DB中の列データをそのまま出力します。DB中の列データをそのまま出力する場合に指定します。
- check:
-
制御文字があるかどうかをチェックします。列データ中に制御文字が含まれている場合,該当行はアンロードデータファイルに出力しません。制御文字を含む行の出力を抑止したい場合に指定します。
- replace[,置き換え文字]:
-
制御文字があるかどうかをチェックします。列データ中に制御文字が含まれている場合,制御文字を置き換え文字に変換し,該当行をアンロードデータファイルに出力します。列データ中に制御文字があっても,テキストビューアなどで参照できる形式で出力する場合に指定します。
置き換え文字は,1バイトの文字で指定してください。
- <置き換え文字の指定規則>
-
-
置き換え文字を省略した場合,コロンが仮定されます。
-
次の文字は,置き換え文字に指定できません。
空白,タブ,アスタリスク,下線
-
次の文字は,出力データのコードと重なる可能性があるため,置き換え文字には適していません。
・出力データ中にある文字
・数値データの符号(+,−)
・マルチバイト文字に文字コードが重なる文字(|,¥,[,],(,),{,}, ̄)
・日間隔,時間隔,及び時刻印データのハイフン
・時間,及び時刻印データのコロン
・数値,日間隔,時間隔,及び時刻印データのピリオド
-
- <cntlcodeオペランドの規則>
-
-
cntlcodeオペランド,又はfixtext_option文を省略した場合,cntlcode=nocheckが仮定されます。
-
cntlcodeオペランドは,fixtext_option文中に一つだけ指定できます。
-
列データ中の制御文字有無,及びcntlcodeオペランドの指定値と,pdrorgの動作の関係を次に示します。
条件
pdrorgの動作
列データ中の制御文字有無
cntlcodeオペランドの指定値
制御文字のチェック
データ出力方法
あり
check
○※
該当する行を出力しないで処理を続行します(pdrorgはリターンコード4で正常終了します)。
replace
制御文字を置き換えて出力します。
nocheck
×
DB中のデータをそのまま出力します。
なし
check
○※
DB中のデータをそのまま出力します。
replace
nocheck
×
- (凡例)
-
○:制御文字をチェックします。
×:制御文字をチェックしません。
- 注※
-
1バイト文字をチェックします。マルチバイト文字はチェックしません。
-
(b) enclose=囲み文字
列データの前後に囲み文字を付ける場合,データを区別するために1バイトの囲み文字を指定します。囲み文字の規則については,cntlcodeオペランドの置き換え文字と同じです。
- <適用基準>
-
列データの前後に囲み文字を付けたい場合に指定します。また,可変長文字列(文字データ型,各国文字データ型,及び混在文字データ型)の列データ長が定義長より短い場合,又はナル値の場合,定義長までパディング文字(デフォルトでは空白文字)を埋めます。そのため,列データ長が0バイトの場合は,0バイト文字データ,ナル値データ,及び空白文字だけのデータの区別ができません。このような場合にencloseオペランドを指定すると,データに囲み文字が付くため,これらを区別できるようになります。
データ型がvarchar(8),パディング文字が空白文字の場合の,データ出力例を次に示します。
データ
出力されるデータ
encloseオペランドなし
enclose="
0バイト文字
△△△△△△△△
""△△△△△△△△
ナル値
△△△△△△△△
△△△△△△△△△△
すべて空白文字
△△△△△△△△
"△△△△△△△△"
- (凡例)
-
△:空白文字
- <encloseオペランドの規則>
-
-
encloseオペランドは,fixtext_option文中に一つだけ指定できます。
-
encloseオペランドを指定した場合の囲み文字の有無を次に示します。
列のデータ型
列のデータ値
囲み文字の有無
CHAR,VARCHAR,NCHAR,NVARCHAR,MCHAR,及びMVARCHR
ナル値
囲み文字は付きません(囲み文字ではなく,パディング文字が付きます)。※
実値
囲み文字が付きます。※
上記以外
ナル値
囲み文字は付きません。
実値
- 注※
-
出力長が2バイト増加します。
-
(c) format=データ型,出力形式
列データの出力形式を変更する場合に指定します。変更できるデータ型はINTEGER及びSMALLINTです。
- データ型:
-
出力形式を変更する列又はパラメタ(コンストラクタパラメタ逆生成関数)のデータ型を指定します。integer又はsmallintを指定してください。
- <規則>
-
-
データ型の指定値には,同じデータ型を複数指定できません。
-
指定したデータ型の列が表にない場合,指定が無視されます。
-
- 出力形式:
-
データ型の出力形式を指定します。type1又はtype2を指定してください。
省略した場合,type1が仮定されます。なお,INTEGER及びSMALLINT以外のデータ型の場合,type1となります。
type1,及びtype2については,「出力形式」を参照してください。