解决"链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].fieldname' 无效的数据"的一种替换方法
2012-01-06 11:05
936 查看
最近在合并两个SQL Server数据库的数据时不幸发生了这种错误,数据只能导入1433条,而其余的上万条数据都无法导入。
我的环境是SQL Server2008 sp1下,使用SQL Server Integration Services 10.0进行数据导入操作。
错误信息片段如下:
* Error 0xc0202009: Data Flow Task 1: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].Description' 无效的数据。".
(SQL Server Import and Export Wizard)
从网上搜索到的结果里,主要说是在SQL Server启动过程中增加参数4808,但是这种方法没有解决我的情况,于是自己尝试了以下几种方法。
由于我的数据源与数据目的都是SQL Server,因此选择的余地还是比较大的。第一次是源数据库和目标数据库都使用[SQL Server Native Client 10.0],也就是默认值,但是失败,而后都使用[Microsoft OLE DB Provider for SQL Server],但是又失败了;最后尝试了一次[.Net Framework Data Provider for SqlServer],呵呵,奇迹般地成功了。
也许这样说不是很清楚,就截个图吧:下图就是在SQL Server导入和导出向导里选择数据源时的截图。我上面提到的都是指这里的选项名称,例如,[.Net Framework Data Provider for SqlServer]等等。
对于选择[.Net Framework Data Provider for SqlServer]后的设置,就是和我们写的.Net里数据库连接字符串时是一致的,因为每个人要连接的数据库实例不一样,所以填写的项也不会相同。我的设置截图如下,不一定适合你哦,呵呵,仅供参考和学习:
至于产生此错误的原因,我还不清楚,但是个人感觉应该和OLE DB比较老有关,希望能帮助那些和我遇到同样问题的人。
同时记录下面的链接,呵呵,以备自己日后所需啦。
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred
:- Reasons and troubleshooting.
另外我在虚拟机中使用SQL Server 2000并选择默认数据源进行导入数据时没有发生上述问题。
我的环境是SQL Server2008 sp1下,使用SQL Server Integration Services 10.0进行数据导入操作。
错误信息片段如下:
* Error 0xc0202009: Data Flow Task 1: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].Description' 无效的数据。".
(SQL Server Import and Export Wizard)
从网上搜索到的结果里,主要说是在SQL Server启动过程中增加参数4808,但是这种方法没有解决我的情况,于是自己尝试了以下几种方法。
由于我的数据源与数据目的都是SQL Server,因此选择的余地还是比较大的。第一次是源数据库和目标数据库都使用[SQL Server Native Client 10.0],也就是默认值,但是失败,而后都使用[Microsoft OLE DB Provider for SQL Server],但是又失败了;最后尝试了一次[.Net Framework Data Provider for SqlServer],呵呵,奇迹般地成功了。
也许这样说不是很清楚,就截个图吧:下图就是在SQL Server导入和导出向导里选择数据源时的截图。我上面提到的都是指这里的选项名称,例如,[.Net Framework Data Provider for SqlServer]等等。
对于选择[.Net Framework Data Provider for SqlServer]后的设置,就是和我们写的.Net里数据库连接字符串时是一致的,因为每个人要连接的数据库实例不一样,所以填写的项也不会相同。我的设置截图如下,不一定适合你哦,呵呵,仅供参考和学习:
至于产生此错误的原因,我还不清楚,但是个人感觉应该和OLE DB比较老有关,希望能帮助那些和我遇到同样问题的人。
同时记录下面的链接,呵呵,以备自己日后所需啦。
SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred
:- Reasons and troubleshooting.
另外我在虚拟机中使用SQL Server 2000并选择默认数据源进行导入数据时没有发生上述问题。
相关文章推荐
- 解决MsSQLServer导入数据时遇到【“链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].2SB553' 无效的数据。】
- 链接服务器'(null)'的OLE DB访问接口'STREAM'返回了对列 '[!BulkInsert]
- 向SQL Server2005中导入数据出现“SQL 错误描述为: 链接服务器 '(null)' 的 OLE DB 访问接口'STREAM' 返回了对列 '[!BulkInsert].field' 无效的数据”解决方案
- 链接服务器 '(null)' 的 OLE DB 访问接口'STREAM' 返回了对列 '[!BulkInsert].field' 无效的数据
- 向SQL Server2005里导入数据是出现错误“SQL 错误描述为: 链接服务器 '(null)' 的 OLE DB 访问接口'STREAM' 返回了对列 '[!BulkInsert].field' 无效的数据”
- 链接服务器 OLE DB 访问接口 'SQLNCLI10' 返回的数据与列所需的数据长度不匹配
- 导入导出数据库数据,报错,链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。
- 链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。
- 链接.. '(null)' 的 .接口'STREAM' 返回了对列 '[!BulkInsert]
- 链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误
- SQL SERVER访问Access数据库,出现错误:无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象
- 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.JET.OLEDB.4.0"
- 链接服务器 "(null)" 的 OLE DB 访问接口 "SQLNCLI11" 指示该对象没有列,或当前用户没有访问该对象的权限。
- 链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OleDb.12.0" 报错。提供程序未给出有关错误的任何信息。
- 解决方法:SQL2008 链接服务器 访问接口 "SQLNCLI10" 的架构行集 出错的问题!
- 解决方法:SQL2008 链接服务器 访问接口 "SQLNCLI10" 的架构行集 出错的问题!
- 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象
- 链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OleDb.12.0" 报错
- SQL Server 解决 "无法执行该操作,因为链接服务器 的 OLE DB 访问接口 "SQLNCLI10" 无法启动分布式事务"
- 链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。