スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)

[目次][索引][前へ][次へ]

8.9.19 fixtext_option文(固定長データ形式の入力データファイル生成時の出力データに関する記述)

-W fixtextオプションを指定して,固定長データ形式の入力データファイルを生成する場合,出力データについての情報を指定します。

<適用基準>
固定長データ形式の入力データファイルを生成する場合(-W fixtextオプションを指定する場合),出力データを編集するときに指定します。

<規則>
  1. fixtext_option文は一つだけ指定できます。
  2. オペランドを二つ以上指定する場合,オペランド間を空白文字(0x20)で区切ってください。
  3. オペランドの指定がない場合,fixtext_option文は指定しないでください。
<この項の構成>
(1) 形式
(2) 説明

(1) 形式

 
 fixtext_option 〔cntlcode={nocheck|check|replace〔,置き換え文字〕}〕
 
        〔enclose=囲み文字〕
 
        〔format=データ型,出力形式〕
 

(2) 説明

(a) cntlcode={nocheck|check|replace〔,置き換え文字〕}

データ型が文字データ型,各国文字データ型,及び混在文字データ型の場合,文字データ中に制御文字(ASCIIコード0x00〜0x1f)を含む列があるときの,データ出力の制御方法を指定します。

nocheck:
制御文字があるかどうかをチェックしないで,DB中の列データをそのまま出力します。DB中の列データをそのまま出力する場合に指定します。

check:
制御文字があるかどうかをチェックします。列データ中に制御文字が含まれている場合,該当行はアンロードデータファイルに出力しません。制御文字を含む行の出力を抑止したい場合に指定します。

replace[,置き換え文字]:
制御文字があるかどうかをチェックします。列データ中に制御文字が含まれている場合,制御文字を置き換え文字に変換し,該当行をアンロードデータファイルに出力します。列データ中に制御文字があっても,テキストビューアなどで参照できる形式で出力する場合に指定します。
置き換え文字は,1バイトの文字で指定してください。
<置き換え文字の指定規則>
  1. 置き換え文字を省略した場合,コロンが仮定されます。
  2. 次の文字は,置き換え文字に指定できません。
    空白,タブ,アスタリスク,下線
  3. 次の文字は,出力データのコードと重なる可能性があるため,置き換え文字には適していません。
    ・出力データ中にある文字
    ・数値データの符号(+,−)
    ・マルチバイト文字に文字コードが重なる文字(|,¥,[,],(,),{,}, ̄)
    ・日間隔,時間隔,及び時刻印データのハイフン
    ・時間,及び時刻印データのコロン
    ・数値,日間隔,時間隔,及び時刻印データのピリオド

<cntlcodeオペランドの規則>
  1. cntlcodeオペランド,又はfixtext_option文を省略した場合,cntlcode=nocheckが仮定されます。
  2. cntlcodeオペランドは,fixtext_option文中に一つだけ指定できます。
  3. 列データ中の制御文字有無,及び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オペランドの規則>
  1. encloseオペランドは,fixtext_option文中に一つだけ指定できます。
  2. encloseオペランドを指定した場合の囲み文字の有無を次に示します。
    列のデータ型 列のデータ値 囲み文字の有無
    CHAR,VARCHAR,NCHAR,NVARCHAR,MCHAR,及びMVARCHR ナル値 囲み文字は付きません(囲み文字ではなく,パディング文字が付きます)。
    実値 囲み文字が付きます。
    上記以外 ナル値 囲み文字は付きません。
    実値
注※
出力長が2バイト増加します。
(c) format=データ型,出力形式

列データの出力形式を変更する場合に指定します。変更できるデータ型はINTEGER及びSMALLINTです。

データ型:
出力形式を変更する列又はパラメタ(コンストラクタパラメタ逆生成関数)のデータ型を指定します。integer又はsmallintを指定してください。
<規則>
  1. データ型の指定値には,同じデータ型を複数指定できません。
  2. 指定したデータ型の列が表にない場合,指定が無視されます。

出力形式:
データ型の出力形式を指定します。type1又はtype2を指定してください。
省略した場合,type1が仮定されます。なお,INTEGER及びSMALLINT以外のデータ型の場合,type1となります。
type1,及びtype2については,「8.3.3(3)(a)出力形式」を参照してください。