通过SAS / ACCESS,我可以成功运行查询外部DBMS表的数据步骤。如,
Data OutTable;
Set ExternalDBMS.Table1;
Where Var1 ='abc';
Run;
但是,当列名称有空格时,即使我使用了' n也会导致问题。 一个例子如下所示:
Data OutTable;
Set ExternalDBMS.Table1;
Where 'Var 2'n ='abc';
Run;
ERROR: CLI open cursor error: [SAS][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Incorrect syntax near the keyword 'Function'.
进一步尝试使用SAS Option validvarname = v7来标准化带有空格的var名称仍会导致相同的错误。
使用SAS Option sastrace =' ,,, d'我发现SAS / ACCESS向SQL服务器提交了这样的声明:
SELECT Var 1, .....
FROM schema1.Table1
WHERE (Var 1 ='abc' );
显然上面的代码会导致SQL服务器端出错,因为Var 1既没有引用也没有括号。
解决此问题的一种方法是使用显式传递查询。我只是想知道是否还有其他方法可以解决这个问题。 提前谢谢!