DDS でフィールドが ALWNULL として定義されている場合は、 COPY DDS ステ ートメントはそのフィールドをコメント付きでヌル可能と識別します。例えば、下記の 2 つの図には、ヌル可能フィールドの入っている DDS ファイル、 およびこのフィールドが ILE COBOL プログラムの FILE-SECTION にコピーされるときにこれに対して作成される結果のコメントが示されています。
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
A* With the following physical file (TESTPF)
R TESTING
FLD1 5S 0
FLD2 8 ALWNULL
FLD3 6
* A COPY DDS-TESTING OF TESTPF.
* I-O FORMAT:TESTING FROM FILE TESTPF OF LIBRARY QTEMP
*
05 TESTING.
06 FLD1 PIC 9(5).
06 FLD2 PIC X(8).
(null-capable field)
06 FLD3 PIC X(6).
コピーされる DDS ヌル可能レコード形式のヌル・マップおよびヌル・キー・マップを生成するには、WITH NULL-MAP および WITH NULL-KEY-MAP 句 を作業用ストレージ・セクションまたはローカル・ストレージ・セクションで新規 COPY DDS ステートメント上に指定する必要があります。 DDS の形式当たり 1 つだけ NULL-MAP のコピーが生成されます。 例えば、形式に I (入力のみ) および B (入出力) の両方が含まれる場合、 生成されるヌル・マップのサイズは形式の中で指定されたすべてのフィールドに合うものです。 換言すれば、これには I および B のすべてのフィールドが含まれています。
特定形式用の DDS で定義されたヌル可能フィールドごとに、データ項目定義が生成されます。 生成されるデータ項目は、作業用ストレージ・セクションま たはローカル・ストレージ・セクションで COPY DDS ステートメント上 に NULL-MAP または NULL-MAP-ALPHANUM を指定するかどうかによって異なります。
06 <field-name>-NF PIC 1 VALUE B"0".
フィールドがヌル可能でない場合は、FILLER 項目が生成されます。 06 <field-name>-NF PIC X VALUE ZERO.
フィールドがヌル可能でない場合は、以下のステートメントがソースで生成されます。
06 <field-name>-AN PIC X VALUE ZERO.
NULL-MAP-ALPHANUM を使用して生成されたヌル・マップのサイズは、NULL-MAP を使用して生成されたヌル・マップのサイズと同じです。
....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....
A* Physical file for DDS
R REC
FLD1 1A
FLD2 1A ALWNULL
FLD3 1A
*DDS Generated
05 REC-NM
06 FILLER PIC X VALUE ZERO.
06 FLD2–NF PIC 1 VALUE B"0".
06 FILLER PIC X VALUE ZERO.