SAS プログラムを実行すると、「A lock is not available」というエラーが常に表示されます。通常、1 つのプログラムで同じデータセットに対して複数回操作を実行すると発生します。このエラーを調査した結果、これは 2 つのプログラムが同じデータセットにアクセスしようとしていることを意味していると理解しています。つまり、他のユーザーまたは自分自身が既に使用しているドキュメントを開こうとするのと似ています。このエラーが発生するコードの例を次に示します。
data TSTONE.map;
infile <PATH> delimiter = ',' truncover firstobs=2 dsd TERMSTR=cr LRECL=32760;
format assessment_edition $45.;
format ...
input
assessment_edition :$45.
...
;
run;
data tstone.map;
set tstone.map;
drop DistrictName ...;
run;
インポートまたはドロップするフィールドの長いリストがあるいくつかの場所に「...」と入力しました。そのため、最初に CSV ファイルをインポートし、次にデータ ステップを実行してファイルを上書きし、不要なフィールドを削除します。このようなプログラムを実行すると、ロック エラーが発生しないことがあります。他のユーザーはこれらのデータセットにアクセスしておらず、私のマシンに対してローカルです。また、2 つのデータ ステップを連続して強調表示して実行すると、問題は発生しません。