【问题标题】:Macro variable in sas stored processsas存储过程中的宏变量
【发布时间】:2015-12-10 11:29:47
【问题描述】:

我在 SAS 中有一个代码。

proc sql;
create test as select * from test2 where user_name = &username;quit;

当我使用%let username=Bob 在 SAS EG 中运行时,它运行正常。 但我需要使用存储过程运行它(变量用户名是连接用户的内部参数,我从 sas 存储过程代码中删除 %let username=Bob)。 存储过程制动出现错误。

在日志文件中我看到变量:

_username=Bob 但存储过程中的代码找不到它。如何在 SAS 存储过程代码中使用此变量?谢谢!

【问题讨论】:

    标签: stored-procedures sas


    【解决方案1】:

    在您自己的 SAS 代码中,您使用宏变量 username,但在您的存储过程中,用户名在保留的宏变量 _username 中可用。下划线实际上是变量名的一部分,所以你应该写&_username

    更多信息可以阅读the documentation或者插入后查阅日志

    %put _automatic_;
    

    在您的代码中,打印 SAS 为您提供的所有宏变量。

    备注:由于存储过程中的自动宏变量与本地 SAS 会话中的自动宏变量不同,如果要在两者中使用相同的代码,通常需要一些 %if %then %else 逻辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多