ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

DBリンクキット:FILLERの扱い方(数値、文字)FILLERで設定した部分は、元のDBは保証されるのでしょうか?具体的にどの様な設定をすればよいか教えて下さい。 例:受注DB (Oracleの例)   受注番号   NUMBER(6)   受注年月日  VARCHAR2(8)   契約先名   VARCHAR2(30)   品目コード  VARCHAR2(9)   台数     NUMBER(5)   受注金額   NUMBER(9)   受注担当者 

質問内容

FILLERの扱い方(数値、文字)

FILLERで設定した部分は、元のDBは保証されるのでしょうか?
具体的にどの様な設定をすればよいか教えて下さい。

 例:受注DB (Oracleの例)

   受注番号   NUMBER(6)
   受注年月日  VARCHAR2(8)
   契約先名   VARCHAR2(30)
   品目コード  VARCHAR2(9)
   台数     NUMBER(5)
   受注金額   NUMBER(9)
   受注担当者  VARCHAR2(7)

   COBOL記述(このCOBOLは、受注担当者のみ利用)

    01  JREC.
      02  FILLER  PIC X(67).
      02  TANTOU  PIC X(07).

この定義でREAD/WRITE/REWRITE命令を実行したときにFILLER部は保証されるのでしょうか。

回答内容

READ/WRITE/REWRITEについて、以下の通りとなります。

・READについては、表定義(の列名規則)に従ったCOBOLデータ型へ変換されます。
 つまり、それなりの形で変換されます。

・WRITE/REWRITEについては、FILLER項目についても、表定義(の列名規則)に
 従ったCOBOLデータ型が指定されているものとしてDBデータ型への変換が
 行われ、不正なデータが格納されていると命令が失敗します。
 つまり、FILLERだからといって、放置していると、予期せぬ結果になります。

 SPACEを格納しておけば、NUMBER列についても 0 に変換してDBに格納しますの
 で、エラーは発生しません。しかしこの場合は、当該データをREADした場合
 にはSPACEではなくゼロで取得してしまいます。この点に問題がある場合は、
 やはりFILLERではなく、基本項目を定義して、INITIALIZEで初期化すべきです。

 もちろん、READ後に「受注担当者」のみを更新しREWRITE CURRENTした場合は、
 FILLERのデータは更新しない(もしくは同じデータをREWRITEしようとする)ので、
 異なる値になることはありません。

  • コンテンツID: 3150003296
  • 公開日: 1998年12月01日
  • 最終更新日:1998年12月01日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。