如何通过名为连字符的SAS libname引用SQL Server表

时间:2014-07-25 16:29:45

标签: sas

我正在尝试使用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服务器由另一个部门管理,虽然我打算谴责他们在表名中使用连字符,但我无法更改表的名称。

1 个答案:

答案 0 :(得分:6)

你应该可以使用:

proc sql;
 SELECT * FROM lib1.'Code_07-12_dim'n;
quit;

这被称为“名字文字”,是SAS在其他地方常用的方括号的版本。

您可能还需要选项options validmemname=any;