Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能(UAP開発編)


2.1.3 データ部(DATA DIVISION)

データ部には次に示す節を指定します。

〈この項の構成〉

(1) SDBデータベース節(SDB-DATABASE SECTION

この節には,アクセス対象のSDBデータベース名などを記述します。SDBデータベース節の記述規則については,「2.3 SDBデータベース節の記述」を参照してください。

(2) 作業場所節(WORKING-STORAGE SECTION

この節では,DML中に記述する埋込み変数を宣言します。埋込み変数の宣言は,LINKAGE SECTION(連絡節)でも行うことができます。

埋込み変数の宣言方法については,「2.4 埋込み変数の宣言」を参照してください。

作業場所節の記述規則については,マニュアル「COBOL85 言語」の「データ部」の「作業場所節」を参照してください。

(3) 連絡節(LINKAGE SECTION

この節では,DML中に記述する埋込み変数を宣言します。埋込み変数の宣言は,連絡節か作業場所節のどちらかで行ってください。

連絡節の記述規則については,マニュアル「COBOL85 言語」の「データ部」の「連絡節」を参照してください。

(4) 埋込み変数のデータ記述項

埋込み変数,埋込み変数の下位項目として使用する変数のデータ記述には,次に示すデータ記述項が指定できます。そのほかのデータ記述項を指定した変数は埋込み変数として使用できません。そのほかの埋込み変数についての記述規則については,「2.4.2(4) 埋込み変数の規則」を参照してください。

レベル番号
  ┌データ名   ┐
  ┤       ├
  └FILLER句┘
  〔REDEFINES句〕
  ┌〔EXTERNAL句〕    ┐
  │〔GLOBAL句〕      │
  │〔PICTURE句〕     │
  ┤〔USAGE句〕       ├
  │〔OCCURS句〕      │
  │〔SYNCHRONIZED句〕│
  └〔VALUE句〕       ┘
  .

項番

データ記述項

指定内容

1

レベル番号

01〜49(集団項目)または77(独立項目)

2

データ名

{データ名|FILLER}

埋込み変数名を指定します。

データ名は30文字以下の名前が指定できます。※1

FILLERは埋込み変数の名前としては使用できません。下位項目のデータ名には指定できます。

数字,または下線で始まるデータ名は指定できません。

3

REDEFINES句

REDEFINES データ名

データ名は30文字以下の名前が指定できます。※1

埋込み変数または埋込み変数の下位項目に指定できます。

4

EXTERNAL句

EXTERNAL

補助語のISは指定できません。

5

GLOBAL句

GLOBAL

補助語のISは指定できません。

6

PICTURE句

表2-3 DMLのデータ型とCOBOL言語のデータ記述項の対応」のレコード型の構成要素のデータ型に対応するデータ記述に記載されている記述以外は指定できません。

PICTURE句に指定する文字列は30バイトまでです。

7

USAGE句

表2-3 DMLのデータ型とCOBOL言語のデータ記述項の対応」のレコード型の構成要素のデータ型に対応するデータ記述に記載されている記述以外は指定できません。

8

OCCURS句

表2-4 データ記述項の句の記述形式」に記載されている記述以外は指定できません。

9

SYNCHRONIZED句

{SYNCHRONIZED|SYNC}

埋込み変数が独立項目(レベル番号77)の場合だけ指定できます。

LEFT,RIGHTの指定はできません。

10

VALUE句

VALUE 〔IS〕 定数

次の定数を指定できます。

  • 文字定数※2,※3

  • 数字定数※2

  • 表意定数※4

  • 16進文字定数※2

注※1

DMLプリプロセサ(pdsdbcbl)は,名前の最大長を60バイトとしてチェックします。

注※2

ポストソースのコンパイルに使用するCOBOLコンパイラで指定できる長さ・桁数で指定してください。

注※3

文字列を囲む記号には,アポストロフィ( ' ),引用符( " )のどちらも使用できます。

注※4

記号文字を指定した表意定数は指定できません。

(5) 埋込み変数以外のデータ記述項

埋込み変数以外のデータ記述項には,数字,または下線で始まるデータ名は指定できません。

(6) COPY文

COPY文は,次の構文で記述します。

COPY文を使用することで,登録集原文をCOBOLソースプログラムに取り込むことができます。

           ┌OF┐
 COPY 原文名 〔┤  ├ 登録集名〕 〔SUPPRESS〕.
           └IN┘

次に示す節に記述された構文が,COPY文として解析されます。

上記の節に記述されたCOPY文が,登録集原文内に入れ子の形で記述されている場合,そのCOPY文も解析対象となります。

COPY文の入れ子の形については,「2.10.7 登録集原文の制限」の「図2-10 COPY文の入れ子のレベルの数え方」を参照してください。

COPY文の記述規則については,COBOLの仕様に従います。ただし,HiRDB/SDでの記述規則でCOBOLの仕様と異なる点があります。COBOLの仕様と異なる点については,次の表を参照してください。

表2‒1 COPY文の記述規則およびCOBOLの仕様と異なる点

項番

オペランド

指定内容

1

原文名

  • 登録集原文が登録されているファイルの名称を,拡張子を付けないで指定します。

  • 30文字以下の文字列で指定します。※2

  • 次の文字で始まる原文名は指定できません。

    数字(0〜9)

    下線(_)

  • 英小文字は使用できません。

  • 登録集原文のファイルが登録されているディレクトリ,およびファイルの検索順位は次のとおりです。そのため,次に示すどれかのファイルに登録しておいてください。

ディレクトリの検索順位※1
  • 環境変数PDCBLLIBに設定したディレクトリ(ディレクトリは絶対パスで指定します※2,※3

  • カレントディレクトリ

ファイルの検索順位※1
  • ファイル名.cbl

  • ファイル名.CBL

  • プリプロセス時とコンパイル時で,参照する登録集原文を一致させる必要があります。そのため,上記で登録した登録集原文と同じファイルを,コンパイル時に登録集原文を検索するディレクトリに格納しておいてください。

    コンパイル時に登録集原文を検索するディレクトリについては,マニュアル「COBOL85 使用の手引」の「登録集原文の使用方法」を参照してください。

  • COPY文の入れ子は最大10レベルまで記述できます。※4

  • 登録集原文は,COBOLの固定形式正書法で記述してください。

2

登録集名

{OF|IN} 登録集名

任意の登録集名を指定します。

なお,プリプロセス時は,登録集名の指定に関係なく,次に示す順位でディレクトリが検索されます。

  1. 環境変数PDCBLLIBに設定したディレクトリ

  2. カレントディレクトリ

3

SUPPRESS

SUPPRESS

原始プログラムの出力印刷時に,該当するCOPY文に複写される原文の印刷を抑止する場合に指定します。

注※1

登録集原文のファイルの検索順位の方が,ディレクトリの検索順位より優先されます。

(例)

  • 登録集原文名:LIB1

  • 環境変数PDCBLLIBに設定したディレクトリ:/USER/A:/USER/B

  • カレントディレクトリ:C

この場合,次の順序で登録集原文名が検索されます。

検索順序

検索時に使用するファイル名

検索対象ディレクトリ

1

LIB1.cbl

/USER/A

2

LIB1.cbl

/USER/B

3

LIB1.cbl

C

4

LIB1.CBL

/USER/A

5

LIB1.CBL

/USER/B

6

LIB1.CBL

C

注※2

登録集原文名長と,環境変数PDCBLLIBで指定したディレクトリ名の最大長の合計が,1,018バイト以下になるように指定してください。1,018バイトを超えるとエラーになります。

注※3

環境変数PDCBLLIBで指定するディレクトリ名の末尾にスラッシュ(/)を記述しないでください。記述した場合,登録集原文ファイルのオープン時にエラーになるおそれがあります。

注※4

UAPソースファイルに記述したCOPY文で直接展開する登録集原文内に記述したCOPY文をレベル1と数えます。

COPY文の入れ子のレベルの数え方の詳細については,「2.10.7 登録集原文の制限」の「図2-10 COPY文の入れ子のレベルの数え方」を参照してください。