SAS从SQL Server连接读取一个包含特殊字符的名称的表

时间:2016-11-01 15:31:06

标签: sql sql-server sas

我在SAS中连接到一个sql server表,其中表名为'Additions_to_Aggregate $'。引号是名称的一部分。所以在我的SAS编辑器中,当我尝试在部分代码中运行以下内容时,我返回错误,因为SAS将其作为字符串而不是表名称读取。

proc sql;
Create Table Name_Compare as
SELECT DISTINCT a.Insured_Name, agg.Policy_Holder_Name, a.Segment
FROM MySQLLib.ADV_Portfolio_Split as a
LEFT JOIN MySQLLib.'Additions_to_Aggregate$'n.data as agg 
on a.Insured_Name = agg.Policy_Holder_Name;
quit;

有没有办法强制SAS将表名作为文字字符串读取,或者您是否有其他解决方案的想法?我已经尝试在SAS资源管理器中重命名表,但是我收到此错误并且不知道如何解释它。

SAS Error Message

1 个答案:

答案 0 :(得分:1)

您正在寻找名字文字。之一:

LEFT JOIN MySQL.'Additions_to_Aggregate$'n

LEFT JOIN MySQL."'Additions_to_Aggregate$'"n

取决于SAS如何处理DBMS连接中的引号;它可能需要也可能不需要第二对外引号。如果由于某种原因你需要单引号(SAS对于宏分辨率之外的单/双没有任何特殊含义),你可以加倍:

LEFT JOIN MySQL.'''Additions_to_Aggregate$'''n