2

这是宏的一部分:

  %let mvTableName = "MyTable";

  proc append base = &mvTableName data = TEMP_TABLE;
  run;

而且我在 WORK 中找不到表:\

之后我检查表的创建。

  data &mvTableName; 
  run;

并在日志中查看:Dataset MyTable ...

但是当我改变字符串%let mvTableName=MyTable;

我看到这个日志:Dataset WORK.MyTable ..

怎么解释?

4

1 回答 1

3

如果您打算使用 mvTableName 作为 DATA= 选项的输入,请不要包含双引号

假设 MyTable 和 Temp_table 是 WORK 库中的 SAS 数据集……这应该可以。

%Let mvTableName=MyTable;
Proc Append base=&mvTableName data=temp_table;
run;

还,

Data &mvTableName;
Run;

创建一个空数据集...所以 mvTableName 将被一个空数据集覆盖。

于 2012-05-14T12:23:24.687 回答