外部DBMS上的SAS查询问题表,其中列名称具有空格

时间:2017-04-21 19:50:21

标签: sql-server sas external spaces columnname

通过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既没有引用也没有括号。

解决此问题的一种方法是使用显式传递查询。我只是想知道是否还有其他方法可以解决这个问题。 提前谢谢!

0 个答案:

没有答案