コンパイラーは、データ項目に指定された値を PICTURE および USAGE 節に有効であると見なし、それらの値の妥当性検査を行いません。 データ項目を後続の処理で使用する前に、その内容が PICTURE および USAGE 節に適合していることを確認してください。
値がプログラムに渡され、それらの値に対する互換性のないデータ記述を持つ項目に割り当てられることがよくあります。 例えば、非数値データが、数値として定義されたフィールドに移動されたり、渡されたりすることがあります。また、符号付き数値が、符号なしとして定義されたフィールドに渡されることもあります。 いずれの場合も、受け取り側フィールドには無効なデータが含まれます。 項目にそれのデータ記述と互換性のない値が与えられると、PROCEDURE DIVISION 内でのその項目への参照が未定義になり、結果が予測できなくなります。
数値のクラス・テストを使用して、データ妥当性検査を行うことができます。以下に例を示します。
Linkage Section.
01 Count-x Pic 999.
. . .
Procedure Division Using Count-x.
If Count-x is numeric then display "Data is good"
数値のクラス・テストでは、データ項目の内容が、そのデータ項目の PICTURE および USAGE にとって有効な値のセットと照合されます。例えば、パック 10 進数項目は、数字位置に 16 進値 X'0' から X'9' があり、符号位置 (分離または非分離) に有効な符号値があるかどうか検査されます。
ゾーン 10 進数およびパック 10 進数項目の場合、数値のクラス・テストは、NUMPROC コンパイラー・オプションおよび NUMCLS オプション (インストール時に設定される) の影響を受けます。 インストールの際に使用された NUMCLS 設定を確認するには、システム・プログラマーに問い合わせてください。
NUMCLS(PRIM) がインストール先で有効な場合は、次の表を使用して、コンパイラーが符号に有効と見なす値を見つけてください。
| NUMPROC(NOPFD) | NUMPROC(PFD) | NUMPROC(MIG) | |
|---|---|---|---|
| 符号付き | C、D、F | C、D、+0 (正のゼロ) | C、D、F |
| 符号なし | F | F | F |
| 分離符号 | +, - | +、-、+0 (正のゼロ) | +, - |
NUMCLS(ALT) がインストール先で有効な場合は、次の表を使用して、コンパイラーが符号に有効と見なす値を見つけてください。
| NUMPROC(NOPFD) | NUMPROC(PFD) | NUMPROC(MIG) | |
|---|---|---|---|
| 符号付き | A から F | C、D、+0 (正のゼロ) | A から F |
| 符号なし | F | F | F |
| 分離符号 | +, - | +、-、+0 (正のゼロ) | +, - |
関連参照
NUMPROC