我在SAS中有一个代码.
proc sql; create test as select * from test2 where user_name = &username;quit;
当我在SAS EG中运行时, %let username=Bob
它运行正常.但我需要使用存储过程运行它(变量用户名是连接用户的内部参数,我%let username=Bob
从sas存储过程代码中删除).存储过程制动器出错.
在日志文件中我看到变量:
_username=Bob
但是存储过程中的代码找不到它.如何在SAS存储过程代码中使用此变量?谢谢!
在您自己的SAS代码中,您使用宏变量username
,但在存储过程中,用户名在保留的宏变量中可用_username
.下划线实际上是变量名称的一部分,所以你应该写&_username
.
有关更多信息,您可以阅读文档,也可以在插入后查阅日志
%put _automatic_;
在您的代码中,打印为您提供的所有宏变量SAS.
备注:由于存储过程中的自动宏变量与本地SAS会话中的自动宏变量不同,如果要在两者中使用相同的代码,则通常需要一些%if %then %else
逻辑.