data A1;
set Q1;
run;
をいきなり実行するとどうなるでしょうか?
セットするデータセットを作ってないので、当然エラーになります。
当たり前ですね。
なので、Q1が存在するかしないかわからない状況で、どっちでも動くコードを書く場合
まずQ1の存在をチェックしてから、存在していたら処理を実行する、みたいな分岐が必要になります。
SASの使用分野や用途によっては、ログに厳密な制限がかかって、ERRORやWARNINGの判定基準を変更する類のオプションの使用が全面禁止されている場合もあると思いますが、そうでない場合で、このケースであれば
options nodsnferr;
と打ってから
data A2;
set Q2;
run;
と書いて実行してみます。すると
となり、あくまで0オブザベーションでデータセットの作成が完了します。
発生するエラーが限定され完全に把握下にあって、織り込み済みの場合や
バッチ実行や他のアプリケーションとの連携上、エラーコードを返さない方が都合がよい場合など
に使えるかもしれません。
options dsnferr;
が戻すオプションで、これがデフォルトです
0 件のコメント:
コメントを投稿