SAS %_eg_WhereParam 错误

SAS %_eg_WhereParam ERROR

我有一个提示,用户可以在其中 select 来自动态列表的多个值。提示创建的宏变量称为promptList。 现在我只想 select 用户在提示中选择的数据。 因此,假设用户运行程序,并且 selects 值 A、C 和 D 来自提示,所有这些都转到 promptList 宏变量。为了过滤数据,我写了以下内容:

SELECT 
  var1,
  var2, 
  var3

    FROM 
      table1

    WHERE 
      %_eg_WhereParam(var1, promptList, IN, type = C);

理论上应该只有 select 具有 var1 值的数据 A、C 或 D。然而,就在日志中 whereParam 语句的下方,我收到了这些错误:

ERROR 79-322: Expecting a SELECT.
ERROR 76-322: Syntax error, statement will be ignored.

我在这里错过了什么?另外,有没有更好的方法来访问宏变量中的这个值列表?找不到任何合适的文档。

我只是用查询生成器完成的,查询生成器生成的代码如下所示:

%_eg_WhereParam(var1, promptList, IN, type = S, IS_EXPLICIT = 0);

所以 S(假设是 String)和 IS_EXPLICIT = 0 成功了。