SASのバージョンを検知する方法

[OS]ALL
[リリース] 6.12, 8.1, 8.2
[キーワード] SYSVER, MACRO VARIABLE

[質問]

SAS 6.12とSAS 8.2を併行して使用しています。双方でプログラムを共通化していますが、一部処理だけリリース番号によって使い分けたいと考えています。リリース番号を取得する方法はないでしょうか。

[回答]

自動マクロ変数「&SYSVER」を使用することで、バージョンごとに異なる処理を実現できます。「&SYSVER」にはバージョン情報が格納されており、SAS 6.12およびSAS 8.2では次の値がセットされています。下記のプログラムを実行し、LOGウィンドウに表示されているリリース番号をご確認ください。

&SYSVERの使用例:

  DATA _null_ ;
    %PUT &SYSVER ;
  RUN ;

実行結果:

  1    DATA _null_ ;
  2      %PUT &SYSVER ;
  X.XX                   ← この行にリリース番号が出力されます
  3    RUN ;

なお、同じリリースで「TSレベル」を考慮する場合は、自動マクロ変数「&SYSVLONG」を利用してください。

&SYSVLONGの使用例:

  DATA _null_ ;
    %PUT &SYSVLONG ;
  RUN ;

実行結果:

  7    DATA _null_ ;
  8      %PUT &SYSVLONG ;
  X.XX.nnnnPmmddyy       ← この行にリリース番号とTSレベルが出力されます
  9    RUN ;
sysvlongで取得される情報は「リリース番号情報 + TSレベル情報 + P + そのモジュールの作成年月日(mmddyy)で構成されます。「6.12.0060P042699」と出力された場合、「SAS 6.12 TS060、モジュール構成日は1999/4/26」であることを表します。