完了に失敗した INVALID KEY 条件

状態キー 1 の値が「2」であり、INVALID KEY 条件が発生したことが示されている場合、状態キー 2 には条件の発生原因を示す次のいずれかの値が設定される。

1 (索引ファイルを順呼び出しした場合) 順序誤りがあったことを示す。連続するレコード キー値の昇順シーケンス要件に違反している (トピック「WRITE 文」を参照)、またはそのファイルに対して READ 文が正常に実行されてから次の REWRITE 文が実行されるまでに COBOL ランタイム要素によって主レコード キーの値が変更されている。
2 (相対ファイルおよび索引ファイルのみ) キーの値が重複していることを示す。重複した主レコード キーを作成するレコードを書き込もうとした、あるいは副レコード キーに DUPLICATES が指定されていない場合に、重複する副レコード キーを作成するレコードの書き込みまたは書き換えを行おうとした。
3 (相対ファイルおよび索引ファイルのみ) レコードが見つからなかったことを示す。キーで識別されるレコードにアクセスしようとしたが、そのレコードがファイルに存在しないか、存在しないオプションの入力ファイルに対して START または READ 文が試行された。
4 (相対ファイルおよび索引ファイルのみ) 以下のいずれかの原因により、境界の違反が発生したことを示す。
  • 外部で定義されているファイル境界を超えて、レコードを書き込もうとした。
  • 相対ファイルに対して順書き込みの WRITE 文が実行されたが、使用された相対レコード番号の桁数が、ファイル用に定義されている相対キー データ項目の桁数よりも大きい。