解决MsSQLServer导入数据时遇到【“链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].2SB553' 无效的数据。】

【详细错误】:错误 0xc0202009: 数据流任务 1: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80004005。

已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].2SB553' 无效的数据。”。(SQL Server 导入和导出向导)

  消息
错误 0xc02020a1: 数据流任务 1: 数据转换失败。列“partno”的数据转换返回状态值 4 和状态文本“文本被截断,或者一个或多个字符在目标代码页中没有匹配项。”。
 (SQL Server 导入和导出向导)

错误 0xc020902a: 数据流任务 1: “源 - zero_search_2012_4_csv.输出[平面文件源输出].列[partno]”由于发生截断而失败,而且针对“源 - zero_search_2012_4_csv.输出[平面文件源输出].列[partno]”的截断行处理设置指定截断时出错。在指定组件的指定对象上出现截断错误。
 (SQL Server 导入和导出向导)

【解决办法】:选择导入数据->数据源选“平面文件源”->指定文本限定符->选择“列”,并指定行分隔符,列分隔符->选择“高级”,OutputColumnWidth,把长度调整至合适长度,继续逐步完成即可。



错误 0xc0202092: 数据流任务 1: 处理文件“E:\xxxx\docment\my_table_backup\new_table_csv\zero_search_2012_4.csv”的数据行 4898 时出错。
 (SQL Server 导入和导出向导)
 
错误 0xc0047038: 数据流任务 1: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。源 - zero_search_2012_4_csv 的 PrimeOutput 方法返回了错误代码 0xC0202092。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
 (SQL Server 导入和导出向导)

【错误分析】:发现地4898行数据中带有"@",经测试发现凡是字符窜中带有“@”符号的行都会出错。

【解决办法】:选择导入数据->数据源选“平面文件源”->指定文本限定符->选择“列”,并指定行分隔符,列分隔符->选择“高级”,DataType选择为DT_TEXT文本流,继续逐步完成即可。


你可能感兴趣的:(解决MsSQLServer导入数据时遇到【“链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].2SB553' 无效的数据。】)