添え字付け
添え字付けとは、正の整数を使用してテーブル参照を行う手法のことです。 添え字とは、テーブル・エレメントのオカレンス番号を指定する正の整数値 (または整数データ項目) です。
添え字付け - 形式 .------------------------. V | >>-+-条件名-1---+----+--------------------+-+--+----------------------+------> '-データ名-1-' '-+-IN-+--データ名-2-' '-+-IN-+--ファイル名-1-' '-OF-' '-OF-' .-------------------------------------. V | >--(----+-整数-1--------------------------+-+--)---------------------------->< +-ALL-----------------------------+ +-データ名-3--+----------------+--+ | '-+-+--+--整数-2-' | | '- --' | '-指標名-1-----+----------------+-' '-+-+--+--整数-3-' '- --'
- 条件名-1
- OCCURS 文節を含むデータ記述記入項目に従属している必要があります。
- データ名-1
- OCCURS 文節を含んでいるか、または OCCURS 文節を含むデータ記述記入項目に従属している必要があります。
- 整数-1
- 符号付きでもかまいません。符号付きの場合には、正でなければなりません。
- ALL
- さまざまな数の引数を認める関数の、関数引数として使用されます。 添え字付き ID が関数の引数として使用されるときのみ使用でき、条件名が指定されているときには使用できません。
- データ名-3
- 整数を表す数字基本項目でなければなりません。
データ名-3 は修飾できます。
- 指標名-1
- 指標名を指定している INDEXED BY 句を含む、参照されているテーブルの階層のデータ記述記入項目に対応します。
- 整数-2、整数-3
- 符号のない整数でなければなりません。
括弧で囲まれた添え字は、テーブル・エレメントの名前の修飾を直後に続けて書きます。 このような参照の添え字の数は、そのエレメントが参照されているテーブルの次元の数と等しくなければなりません。 すなわち、データ名そのものも含めて、データ名の入っている階層の各 OCCURS 文節に 1 つの添え字がなければなりません。
複数の添え字が必要とされるときには、それらはデータ編成を含めた小さい方の次元から連続した順序で書かれます。 複数の次元のテーブルが連続するネストされたテーブルであると見なされ、ネストの一番外側のテーブルが大テーブルで、 一番内側が小テーブルであると見なされる場合、添え字は大、中、小の順番で左から右へ書かれます。
例えば、TABLE-THREE が次のように定義されている場合、
01 TABLE-THREE.
05 ELEMENT-ONE OCCURS 3 TIMES.
10 ELEMENT-TWO OCCURS 3 TIMES.
15 ELEMENT-THREE OCCURS 2 TIMES PIC X(8).
TABLE-THREE への有効な添え字付き参照は次のとおりです。
ELEMENT-THREE (2 2 1)
項目への参照は、 その項目がテーブル・エレメントまたはテーブル・エレメントに関連した項目または条件名でなければ、添え字付きにしてはなりません。
各テーブル・エレメント参照は、次のような参照が行われる場合を除き、添え字を付ける必要があります。
- USE FOR DEBUGGING ステートメントの中
- SEARCH ステートメントのサブジェクトとして
- REDEFINES 文節の中
- OCCURS 文節の KEY IS 句の中
- LIKE 文節の中
添え字によって表される最低の許容オカレンス数は 1 です。 どのような特定の場合でも最高の許容オカレンス数は、OCCURS 文節で指定される項目のオカレンスの最大数です。
