2.1.3 データ部(DATA DIVISION)
データ部には次に示す節を指定します。
-
SDBデータベース節(SDB-DATABASE SECTION)
-
作業場所節(WORKING-STORAGE SECTION)
-
連絡節(LINKAGE SECTION)
- 〈この項の構成〉
(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〕 定数 次の定数を指定できます。
|
- 注※1
-
DMLプリプロセサ(pdsdbcbl)は,名前の最大長を60バイトとしてチェックします。
- 注※2
-
ポストソースのコンパイルに使用するCOBOLコンパイラで指定できる長さ・桁数で指定してください。
- 注※3
-
文字列を囲む記号には,アポストロフィ( ' ),引用符( " )のどちらも使用できます。
- 注※4
-
記号文字を指定した表意定数は指定できません。
(6) COPY文
COPY文は,次の構文で記述します。
COPY文を使用することで,登録集原文をCOBOLソースプログラムに取り込むことができます。
┌OF┐ COPY 原文名 〔┤ ├ 登録集名〕 〔SUPPRESS〕. └IN┘
次に示す節に記述された構文が,COPY文として解析されます。
-
作業場所節(WORKING-STORAGE SECTION)
-
連絡節(LINKAGE SECTION)
上記の節に記述されたCOPY文が,登録集原文内に入れ子の形で記述されている場合,そのCOPY文も解析対象となります。
COPY文の入れ子の形については,「2.10.7 登録集原文の制限」の「図2-10 COPY文の入れ子のレベルの数え方」を参照してください。
COPY文の記述規則については,COBOLの仕様に従います。ただし,HiRDB/SDでの記述規則でCOBOLの仕様と異なる点があります。COBOLの仕様と異なる点については,次の表を参照してください。
項番 |
オペランド |
指定内容 |
---|---|---|
1 |
原文名 |
|
2 |
登録集名 |
{OF|IN} 登録集名 任意の登録集名を指定します。 なお,プリプロセス時は,登録集名の指定に関係なく,次に示す順位でディレクトリが検索されます。
|
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文の入れ子のレベルの数え方」を参照してください。