how to list all available user defined macros in SAS Enterprise Guide?

荒凉一梦 提交于 2020-01-02 05:43:05

问题


Say in my main code I have this code block:

%macros hi5;
 %put hi five;
%mend;

%macros helloworld;
  %put hello world;
%mend;

How do I, in SAS Enterprise Guide, display something like this? (via log or via a SAS table)

These are the user defined user macros:

hi5
hello world

(the aim is so that user is able to know what macros are already available to them).

Note: the %put _ALL_ only list all macros variables, not macros (e.g. built with %macros and %mend.)


回答1:


You can get there via PROC CATALOG, or via dictionary.catalogs. The latter will work even if you don't know where they're stored.

proc sql;
  select * 
    from dictionary.catalogs
    where objtype='MACRO';
quit;

That will include the predefined macros in SASHELP, which you can exclude using where libname ne 'SASHELP'.




回答2:


When you are running SAS using Enterprise Guide, SAS/Studio or other new fangled access methods the compiled macros that would previously appear in WORK.SASMACR catalog now end up in WORK.SASMAC1. At least in the environments I have explored.




回答3:


I'm using proc catalogs

proc catalog cat=xxxxx.sasmacr;contents;run;


来源:https://stackoverflow.com/questions/37143108/how-to-list-all-available-user-defined-macros-in-sas-enterprise-guide

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!