SASデータセットの存在チェック

[OS]ALL
[リリース] 5.18, 6.07, 6.08, 6.09, 6.10
[キーワード] base, datastep, _null_, set, macro, variable, syserr, put, sashelp, vmember, view, sasdataset, exist, chack, libname, memname, memtype

[質問]

あるSASデータセットが存在しているかどうかのチェックを行うことはできますか。

[回答]

次のDATAステップを実行した後、マクロ変数SYSERRの値を参照することで可能です。 マクロ変数SYSERRの値が'0'ならば存在し、それ以外であれば存在しません。

  data _null_; set xxxxx; run  <= xxxxx:チェックするSASデータセット
  %put &SYSERR;

また、SAS 6.07以降であれば、SASHELP.VMEMBER.VIEWを参照してチェックすることもできます。 SASHELP.VMEMBER.VIEWは現在割り当てられているライブラリ参照名とSASデータセット名を参照します。

  data _null_;
    retain msg 'NOT EXIST !!';
    set SASHELP.VMEMBER(where=(memtype='DATA')) end=end;
    if libname='ライブラリ参照名' and memname='SASデータセット名' 
      then msg='EXIST !!';
    if end then put 'SAS DATASET is ' msg;
  run;