SSIS抽取intersystems cache 数据库数据,SQLSERVER数据库配置CACHE数据库DBLINK

发布时间 2023-09-27 19:10:27作者: 小兵一枚

     最近有个新需求,需要用SSIS抽取intersystems cache数据库表数据

步骤一:首先想到的是通过ODBC驱动进行连接,第一步安装cache驱动

步骤二:配置cache数据库连接串,关键内容:CACHe数据库地址,端口,空间名,用户名,密码

步骤三:测试ODBC链接

步骤四:SSIS中配置ODBC链接

 步骤五:常规数据抽取,抽取过程中报错

 

特殊说明:此处的报错信息并不完整,所以我想通过SQLSERVER DBLINK方式连接Cache数据库


以下是SQLSERVER配置DBLINK方式连接CACHE数据库内容:

步骤一:通过SQLSERVER配置CACHE链接,前提条件:ODBC中已配置好CACHE数据库信息

 

步骤二:通过配置好的连接查询数据

 查询SQL:SELECT * FROM OPENQUERY(CACHE,'SELECT  * FROM dhc_bonUs_data.empinfoview')
--注释:CACHE为你配置的DBLINK名称

返回结果:

消息 7347,级别 16,状态 1,第 2 行
链接服务器 'CACHE' 的 OLE DB 访问接口 'MSDASQL' 返回的数据与列 '[MSDASQL].BonusUnitName' 所需的数据长度不匹配。所需的(最大)数据长度为 30,但返回的数据长度为 32。

此处反馈的结果为数据类型问题,大致意思是在CACHE 中数据类型为varchar,在SQLSERVER中需要以nvarchar数据类型展示,在ODBC配置页面中可以选择编码方式

更改数据库编码格式:以UNICODE格式编码打钩即可

 更改数据库编码类型后,SSIS包重新映射,继续抽数据

 通过DBLINK查询CACHE数据库表也不报错了