我正在尝试使用Proc Sql查询名为 Code_07-12_dim 的SQL服务器数据库中的表。 SAS将连字符解释为其他含义,以下代码返回错误:
proc sql;
SELECT * FROM lib1.Code_07-12_dim;
quit;
日志输出:
ERROR 22-322: Syntax error, expecting one of the following: a name, ;, (, ',', ANSIMISS, AS, CROSS, EXCEPT, FULL, GROUP, HAVING, INNER, INTERSECT, JOIN, LEFT, NATURAL, NOMISS, ORDER, OUTER, RIGHT, UNION, WHERE.
ERROR 200-322: The symbol is not recognized and will be ignored
我如何参考此表?请注意,SQL服务器由另一个部门管理,虽然我打算谴责他们在表名中使用连字符,但我无法更改表的名称。
答案 0 :(得分:6)
你应该可以使用:
proc sql;
SELECT * FROM lib1.'Code_07-12_dim'n;
quit;
这被称为“名字文字”,是SAS在其他地方常用的方括号的版本。
您可能还需要选项options validmemname=any;
。