COBOL2002 使用の手引 手引編


35.3.5 ファイル

〈この項の構成〉

(1) CBLCSVCHAR

-NumCsvオプションを指定してCSV編成ファイルの入出力をする場合,無視したい文字列を指定します。

規則
  • 環境変数CBLCSVCHARに複数の文字列を指定する場合は,各文字列をセミコロン(;)で区切ります。

  • 環境変数CBLCSVCHARに指定する文字列の長さは,1,024バイト以内でなければなりません。1,024バイトを超える文字列を指定した場合は,メッセージが出力され,環境変数CBLCSVCHARの指定は無効となります。

詳細は,「6.8.5 セルデータを数値として入出力する機能」の「(3) 数値として入力するとき,不要な文字列を無視する機能」を参照してください。

(2) CBLCSVINIT

CSVファイルのREAD文実行時に,セルと対応しない未使用の基本項目を初期化する場合に指定します。

詳細は,「6.8.7 入力時の未使用項目の初期化機能」を参照してください。

(3) CBLD_ファイル名

入出力動作を指示する下記のオプションをファイル単位に指定します。

規則
  • 複数のオプションを指定するときは各オプションをコロン(:)で区切ります。

  • 環境変数CBLD_ファイル名は,OPEN文を実行するごとに環境変数の値が参照されます。

  • ここで指定するファイル名はSELECT句で指定したファイル名に対応します。ただし,ファイル名内のハイフン(-)は下線(_)に置き換えて指定します。

  • 背反するオプションを同時に指定した場合,あとから指定したオプションが有効となります。

  • 環境変数CBLD_ファイル名に指定する文字列の長さは,1,024バイト以内でなければなりません。1,024バイトを超える文字列を指定した場合,メッセージが出力され,これらの環境変数の指定は無効となります。

  • 同じファイルに対して環境変数CBLD_ファイル名と環境変数CBL_ファイル名の両方を指定した場合,環境変数CBLD_ファイル名に指定した内容だけが有効となり,環境変数CBL_ファイル名に指定した値は無効となります。なお,環境変数CBLD_ファイル名にNULL(指定値なし)を指定した場合でも,環境変数CBL_ファイル名に指定した内容は無効となります。

設定例

(例1)
(COBOLでの記述例)
SELECT A-FILE ASSIGN TO SYS000.
(環境変数の設定例)
CBLD_A_FILE=ISAMDL:NOISAMPREV
(例2)

背反するオプションを同時に指定した場合,あとから指定したオプションが有効となります。

CBLD_A_FILE=ISAMDL:NOISAMDL

上記の指定をした場合,最初の"ISAMDL"は無効となり,あとに設定した"NOISAMDL"が有効となります。

設定できるオプションを次に示します。次に示すオプション以外は無効となります。

(a) ISAMDL/NOISAMDL

ISAMDLは,索引編成ファイルでOPENモードがOUTPUTの場合,既存のファイルを削除して再生成します。NOISAMDLは,ファイルの削除はしません。省略時はNOISAMDLが仮定されます。

(b) ISAMPREV/NOISAMPREV

ISAMPREVは,索引編成ファイルでSTART文の指定がLESS,LESS THAN OR EQUAL,およびLASTの場合,あとに続くNEXT指定のREAD文でキーの降順に呼び出します。NOISAMPREVは,START文の指定に関係なく,NEXT指定のREAD文はキーの昇順に呼び出します。省略時はISAMPREVが仮定されます。

(c) SAMAADV/NOSAMAADV

SAMAADVは,ADVANCING指定を書かないWRITE文にAFTER ADVANCING 1 LINEを仮定します。NOSAMAADVはこれを仮定しません。省略時はNOSAMAADVが仮定されます。

SAMAADVとSAMBADVを同時に指定した場合は,あとに設定した方が有効となります。

(d) CSVQUOTE/NOCSVQUOTE

CSVQUOTEは,CSV編成ファイルのWRITE文でセルの内容を出力するとき,データを引用符( " )で囲みます。NOCSVQUOTEは,引用符を付けません。省略時はCSVQUOTEが仮定されます。

NOCSVQUOTEを指定した場合の詳細は,「6.8 CSV編成ファイル(表計算プログラムファイル)」を参照してください。

(e) CSVWRITESPACE/NOCSVWRITESPACE

CSVWRITESPACEは,CSV編成ファイルのWRITE文で,出力するレコードの基本項目のデータの最後の空白文字を出力します。NOCSVWRITESPACEは,データの最後の空白文字を出力しません。なお,省略時はNOCSVWRITESPACEが仮定されます。

CSVWRITESPACEを指定した場合の詳細は,「6.8.8 データの後の空白文字を出力する機能」を参照してください。

(f) CSVTABSEPARATED/NOCSVTABSEPARATED

CSVTABSEPARATEDは,CSVファイル入出力機能でセルデータをタブ文字区切りで入出力します。NOCSVTABSEPARATEDはセルデータにコンマ(,)区切りで入出力します。なお,省略時はNOCSVTABSEPARATEDが仮定されます。

CSVTABSEPARATEDを指定した場合の詳細は,「6.8.9 セルデータをタブ文字区切りで入出力する機能」を参照してください。

(g) FSYNC/NOFSYNC/WDISK

強制的にディスク書き込みをするかしないかを指定します。

FSYNCを指定した場合,プログラムの終了時,またはCLOSE文の実行終了時に,COBOLプログラムの環境部のファイル記述項で指定したファイル名のファイルに対して,強制的なディスク書き込みを適用します。

WDISKを指定した場合,WRITE文,REWRITE文,またはDELETE文の実行終了時に,COBOLプログラムの環境部のファイル記述項で指定したファイル名のファイルに対して,強制的なディスク書き込みを適用します。

NOFSYNCを指定した場合は,ディスクへの書き込み保証が適用されません。

FSYNC,NOFSYNC,WDISKのどれかを同時に指定した場合は,あとに指定した方が有効となります。また,FSYNC,NOFSYNC,WDISKのどれも指定しない場合は,環境変数CBLFSYNC,および環境変数CBLISAMFSYNCの指定に従います。

ファイルのディスク書き込み保証機能の詳細については,「14.1 ファイルのディスク書き込み保証」を参照してください。

(h) SAMENDIO/NOSAMENDIO

SAMENDIOは,固定長形式の順ファイルでファイルサイズがレコード長の整数倍ではなく,ファイルの最終レコードが定義レコード長よりも短い場合でも入出力できるようにします。

NOSAMENDIOでは,ファイルの最終レコードが定義レコード長より短い場合,エラーになります。標準値は,NOSAMENDIOになります。

詳細は,「6.11.1 ファイルサイズがレコード長の整数倍でない固定長形式の順ファイルの入出力」を参照してください。

(i) LARGEFILE/NOLARGEFILE

LARGEFILEは,ラージファイル(ファイルサイズが2GBより大きいファイル)に対しても入出力ができるようにします。

NOLARGEFILEでは,ラージファイルに対してアクセスした場合,エラーになります。標準値は,NOLARGEFILEになります。詳細は,「6.10 ラージファイル入出力機能」を参照してください。

(j) NOINBUFSIZE/NOOUTBUFSIZE(Linuxで有効)

NOINBUFSIZEは,指定されたファイルのバッファサイズ制御による入力時に,環境変数CBLINBUFSIZEで設定された値を無効にします。NOOUTBUFSIZEは,指定されたファイルのバッファサイズ制御による出力時に,環境変数CBLOUTBUFSIZEで設定された値を無効にします。詳細は「6.11.2 ファイルバッファサイズ指定機能」を参照してください。

(k) TEXTWRITESPACE/NOTEXTWRITESPACE

テキスト編成ファイルに対するWRITE文またはREWRITE文で,レコード末尾からの連続する半角空白文字をファイルに書き出したい場合,TEXTWRITESPACEを指定します。テキスト編成ファイルに対するWRITE文またはREWRITE文で,レコード末尾からの連続する半角空白文字を削除したい場合は,NOTEXTWRITESPACEを指定します。詳細については,「6.7.5 レコード末尾の空白文字を出力する機能」を参照してください。

(l) TEXTSUPPRESSBOM/NOTEXTSUPPRESSBOM

テキスト編成ファイルにUnicodeシグニチャを出力しない場合,TEXTSUPPRESSBOMを指定します。Unicodeシグニチャを出力する場合,NOTEXTSUPPRESSBOMを指定します。

詳細については,「27.5.2 入出力機能」の「(1) テキスト編成ファイル」を参照してください。

(m) RDBOPURGE/NORDBOPURGE(AIXで有効)

HiRDBによる索引編成ファイルで,出力モードでファイルを開く場合,すでにファイル内に存在するレコードを高速で削除するとき,RDBOPURGEを指定してください。レコードを高速で削除しない場合,NORDBOPURGEを指定してください。

詳細については,「6.9.5 HiRDBによる索引編成ファイル固有の機能と相違点」の「(5) その他の拡張機能」を参照してください。

(4) CBLFSYNC

プロセス内のすべてのファイルに対して,クローズ時のディスクへの書き込み保証を適用したいときにYESを指定します。YES以外の値を指定したときは,無効となります。

詳細は,「14.1.2 ファイルクローズ時のディスク書き込み保証の指定方法」および「13.6 COBOL入出力サービスルーチンでのディスク書き込み保証」を参照してください。

(5) CBLINBUFSIZE

OPEN文のモードがINPUT指定のバッファサイズ制御によるファイル入力時に,使用するバッファサイズを2,000,000,000(約2GB)までの数値で指定します。

詳細は,「6.11 ファイル入出力拡張機能」を参照してください。

(6) CBLIOMESSAGE

ファイル入出力文でのエラー情報出力機能を使用したい場合に,この環境変数を指定します。指定可能な値を次に示します。

(a) STATUS90

ファイル管理記述項にFILE STATUS句の指定がある場合に,入出力文の実行で入出力状態値が90となるエラーが発生したとき,該当する実行時メッセージを出力してプログラムの実行を継続します。ただし,出力するメッセージのレベルはI(お知らせ)となります。

この環境変数については,「6.3.4 ファイル入出力文でのエラー情報出力機能」を参照してください。

(7) CBLISAMDL

既存の索引ファイルに対してOPEN OUTPUTを実行した場合,旧ファイルを削除後,ファイルを新しく作成したいときにYESを指定します。指定しなかったときや,YES以外の文字を指定したときは,NOが仮定されます。このとき,既存のファイルに対しての追加書きとなります。

(8) CBLISAMFSYNC

プロセス内のすべてのISAMによる索引編成ファイルに対して,クローズ時のディスクへの書き込み保証を適用したいときにYESを指定します。YES以外の値を指定したときは,無効となります。ファイルのディスク書き込み保証については,「14 ファイルのディスク書き込み保証」を参照してください。

(9) CBLLARGEFILE

ラージファイル入出力機能の対象である実行単位中のすべてのファイルに対して,ラージファイル入出力機能を適用するときにYESを指定します。詳細は「6.10 ラージファイル入出力機能」を参照してください。

(10) CBLOUTBUFSIZE

OPEN文のモードがOUTPUT/EXTEND指定のバッファサイズ制御によるファイル出力時に,使用するバッファサイズを2,000,000,000(約2GB)までの数値で指定します。

詳細は,「6.11 ファイル入出力拡張機能」を参照してください。

(11) CBLRDBDATAERR(AIXで有効)

HiRDBによる索引編成ファイルで,レコード中に保証されないデータが含まれていないかをチェックする場合にYESを指定します。

詳細は「6.9.5(5)(b) データチェック機能」を参照してください。

(12) CBLRDBILWAIT(AIXで有効)

RDBファイル入出力機能を使用する場合,INPUTモードで開いたファイルに対し,内部的に発行するSELECTに「WITHOUT LOCK WAIT」の排他オプションを付加するときにYESを指定します。

詳細は「6.9.5(4) HiRDBによる索引編成ファイル固有のファイル共用」を参照してください。

(13) CBLRDBOPURGE(AIXで有効)

HiRDBによる索引編成ファイルに対して出力モードでファイルを開く場合,すでにファイル内に存在するレコードを高速で削除したいときにYESを指定します。

詳細は「6.9.5(5)(a) 出力ファイルの高速オープン機能」を参照してください。

(14) CBLRDBROWVALCONSTRUCTOR(AIXで有効)

HiRDBによる索引編成ファイルで,内部発行SELECTで行値構成子を使用する,内部発行されるSQL文で行値構成子を使用する機能を有効にするときに,YESを指定します。

詳細は,「6.9.5 HiRDBによる索引編成ファイル固有の機能と相違点」の「(5) その他の拡張機能」にある「(c) 内部発行されるSQL文で行値構成子を使用する機能」を参照してください。

(15) CBLSTMFSYNC

プロセス内のすべてのバイトストリーム入出力サービスルーチンで扱うファイルに対して,クローズ時のディスクへの書き込み保証を適用したいときにYESを指定します。YES以外の値を指定したときは,無効となります。

詳細は,「15.5 バイトストリーム入出力サービスルーチンでのディスク書き込み保証機能」を参照してください。

(16) CBLSTMLARGEFILE

バイトストリーム入出力サービスルーチンでのラージファイル入出力機能を適用したいときに,YESを指定します。省略時およびYES以外の値を指定した場合,バイトストリーム入出力サービスルーチンでのラージファイル入出力機能は無効となります。

詳細は,「15.4 バイトストリーム入出力サービスルーチンでのラージファイル入出力機能」を参照してください。

(17) CBLTEXTSUPPRESSBOM

テキスト編成ファイルにUnicodeシグニチャを出力しない場合に指定します。

詳細は,「27.5.2 入出力機能」の「(1) テキスト編成ファイル」を参照してください。

(18) CBLTEXTWRITESPACE

テキスト編成ファイルに対するWRITE文またはREWRITE文で,レコード末尾からの連続する半角空白文字をファイルに書き出したい場合に指定します。

詳細は,「6.7.5 レコード末尾の空白文字を出力する機能」を参照してください。

(19) CBLX_外部装置名(AIX(32)で有効)

書式印刷機能を使用したプリンタ出力するときの印刷サービス名称を指定します。

詳細は,「8.4 XMAP3による印刷(AIX(32)で有効)」を参照してください。

(20) CBL_RDBCOMMIT(AIXで有効)

HiRDBによる索引編成ファイルに対して,COMMIT文,ROLLBACK文によってRDBアクセスのトランザクション管理を行う場合にYES,AUTO,またはMANUALを指定します。

詳細は「6.9.5(1)(a) 環境変数CBL_RDBCOMMIT」を参照してください。

(21) CBL_外部装置名

ファイル入出力での入出力ファイル名を指定します。

詳細は,「6.2.2 環境変数指定」を参照してください。