REDEFINES(再定義)句は、同一の計算機記憶領域を別のデータ記述項によって記述する。
上記のレベル番号とデータ名-1
またはFILLER
は形式を明確にするために示してある。レベル番号、データ名-1
およびFILLER
はいずれも、REDEFINES句の一部を構成するわけではない。
またはFILLER
あるいは、PICTURE句またはUSAGE句の後ろにREDEFINES句を書くことができる。
78、
および88は、いずれも使用できない。
この句を、ファイル節内の01レベルの記述項内で使用してもよい。
データ名-2は、REDEFINES句が含まれている記述項の下位に属していてもよい。データ名-2のデータ記述項には、OCCURS句が含まれていてはならない。しかし、OCCURS句が含まれているデータ記述項の下位に、データ名-2が属していても構わない。この場合、REDEFINES句の中でデータ名-2を参照するときに、添字または指標は指定できない。元の定義および再定義のどちらも、OCCURS句で指定される可変反復データ項目を含んでいてはならない。(この章のOCCURS(反復)句 OCCURS(反復)句OCCURS(反復)句節を参照。)
データ名-2のデータ記述項に、OCCURS句が含まれていてもよい。
レベル番号が01の場合、元の定義と再定義は、OCCURS句で定義したサイズが可変の項目を含むことができる。
データ名-2を修飾してもよいが、記述した修飾は無視される。
REDEFINESを、字類オブジェクトのデータ項目に指定してもよい。
データ名-2は、字類オブジェクトでもよい。
ただし、データ名-1の領域が、データ名-2の領域よりも小さくてもよい場合を除く。
ただし、データ名-1の領域がデータ名-2の領域よりも大きくてもよい場合を除く。この場合、再定義する項目と再定義される項目の大きい方を収められるだけの記憶領域がとられる。
REDEFINES句は記憶領域を再定義するのであって、記憶されているデータ項目を再定義するのではないことを、認識することが重要である。
または、先行する再定義記述項のデータ名を使用してもよい。