SAMEKEY 関数は、アクセスされたレコードに同じキーを持つ別のレコードが続いているかどうかを示す長さ 1 のビット文字列を返します。そのようなレコードが続いている場合、返される値は '1'B になります。処理されたレコードに同じキーを持つ別のレコードが続いていない場合、ファイルが開いていない場合、現在のカーソル位置がファイル内にない場合、または RECORD 以外の条件を発生させた入出力操作がファイルの位置付けの変更または喪失も発生させた場合、値は '0'B に設定されます。
foo: procedure options(main);
dcl db2 file env(vsam keyloc(5) keylength(4) recsize(80) reuse);
dcl 1 db_record,
2 dbkey char(4),
2 dbaix char(4),
2 filler char(72);
open file(db2);
read file(db2) into(db_record) key('KEY1');
if samekey(db2) then
put skip list("next record is duplicate key");
close file(db2);
end foo;