如何查看原始sas宏代码?
我试图调试SAS程序中使用的代码,但该程序使用永久库中的宏。我找不到创建宏的代码,也无法访问创建原始库的人员。我知道如何查看原始sas宏代码?,sas,sas-macro,Sas,Sas Macro,我试图调试SAS程序中使用的代码,但该程序使用永久库中的宏。我找不到创建宏的代码,也无法访问创建原始库的人员。我知道选项mprint将向我显示宏执行的代码行,但我希望看到宏使用的所有代码,以便我可以更轻松地调试它。换言之,如果我有生成宏的原始程序,我希望获得所有可用的信息。这可能吗?有两种可能的方法可以从永久库执行SAS宏。您使用的是自动调用宏,或者是存储的编译宏 自动调用宏意味着您可以访问源,因为它只是一个.sas文件,宏的名称就是文件名。您可以%包含该文件并查看全文,前提是您知道该文件所在的
选项mprint
将向我显示宏执行的代码行,但我希望看到宏使用的所有代码,以便我可以更轻松地调试它。换言之,如果我有生成宏的原始程序,我希望获得所有可用的信息。这可能吗?有两种可能的方法可以从永久库执行SAS宏。您使用的是自动调用宏,或者是存储的编译宏
自动调用宏意味着您可以访问源,因为它只是一个.sas文件,宏的名称就是文件名。您可以%包含该文件并查看全文,前提是您知道该文件所在的目录(您可以有许多自动调用库)。因此,如果您的saautos
目录是c:\sas\macros\
,并且您正在调用%mymacro()
,那么您可以执行
%include "c:\sas\macros\mymacro.sas";
其中包括预编译的文本,只要启用了source2
选项,它就会打印到日志中
只有使用SOURCE
选项编译存储的已编译宏时,才能查看该宏。如果不是,则无法检索宏源代码(如果没有访问创建SCM的程序)
如果是使用源代码编译的
,则可以使用%COPY
宏语句将源代码从SCM复制到日志:
%copy mymacro / SOURCE;
更多详细信息可在SAS文档或优秀论文中找到。如果您的宏来自某个目录,则
选项将显示
将日志打印宏代码编译到工作中的位置
请参见遗憾的是,我有一个已存储的编译宏,并且没有使用
SOURCE
选项,但至少我不会继续浪费时间试图取出原始代码。