0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SASテクニック マクロ変数のリセット

Last updated at Posted at 2020-07-07

SASのマクロ変数を一括削除する方法

sashelp.VMACROにマクロ変数の名前や中身が入っている
名前を取ってきて、symdelで削除する

%* VMACROからグローバルマクロ変数の名前を取得 *;
%* sys…のとか消せない(SQL使ってなければ出てこないかも) *;
%* 200超えてたりするとレコードまたぐため、nodupkey *;
proc Sort data = sashelp.VMACRO( keep = SCOPE NAME ) out = work.VMACRO nodupkey;
  by NAME;
  where SCOPE =: "G" and NAME ^=: "SYS";
run;
%* 他に消したくないマクロ変数あるなら、NAMEのとこ増やす *;

data _null_;
  set work.VMACRO( keep = NAME );
  call execute( '%symdel '|| cats( NAME ) || ';' );
run;

%* データセット不要なら *;
proc Delete lib = work data = VMACRO;
run;

余談

call symdelでも消せる
%sysmacdelete マクロ;でマクロを削除

dictionary.MACROSからもマクロ変数名を取得できる

proc Sql;
  create table work.VMACRO as
    select distinct NAME
    from dictionary.MACROS
    where SCOPE like 'G%' and ^( NAME like 'SYS%' );
quit;

data _null_;
  set work.VMACRO;
  call symdel( NAME );
run; 

https://support.sas.com/documentation/cdl_alternate/ja/mcrolref/67912/HTML/default/p1vtk6flp9vpfzn14kkxolcnggzy.htm
https://support.sas.com/documentation/cdl_alternate/ja/mcrolref/67912/HTML/default/n1mihelxhd39lgn1qvl44z89otpw.htm

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?