我正在尝试创建一个SSIS 2008数据源视图,该视图通过Ingres的ODBC驱动程序从Ingres数据库读取数据。我下载了ingres10社区版来获取ODBC驱动程序,安装它,在运行SSIS的服务器上设置数据访问服务器和DSN。
如果连接到运行SSIS的服务器上的SQL Server 2008数据库引擎,则可以通过运行以下命令通过ODBC DSN从Ingres检索数据:
SELECT *
FROM OPENROWSET( 'MSDASQL'
, 'DSN=IngresODBC;UID=testuser;PWD=testpass'
, 'SELECT * FROM iitables')
所以我很确定ODBC的设置是正确的。
如果我尝试使用SQL Server样式的带括号的标识符引号的同一查询,我会得到一个错误,因为Ingres不支持这种语法。
SELECT *
FROM OPENROWSET( 'MSDASQL'
, 'DSN=IngresODBC;UID=testuser;PWD=testpass'
, 'SELECT * FROM [iitables]')
按照edharper的建议创建一个命名查询似乎也受到了阻碍。如果我在命名查询中输入以下文本:
SELECT *
FROM "iitables"
我仍然得到一个错误:“error[5000A][Ingres][Ingres 10.0 ODBC Driver][Ingres 10.0]第2行,意外字符'['。
根据错误,SSIS传递给ODBC的查询文本为:
SELECT [iitables].*
FROM
(
SELECT *
FROM "iitables"
)
AS [iitables]