当前位置: 代码迷 >> Sql Server >> SQL 2012 导入文本文件报错,求解惑解决方法
  详细解决方案

SQL 2012 导入文本文件报错,求解惑解决方法

热度:110   发布时间:2016-04-24 09:52:09.0
SQL 2012 导入文本文件报错,求解惑
以下是用SQL的导入导出功能直接导入文本文件时报错,数据有2万+,
之后我就用SQL语句导入,没有任何问题,导入正常。

BULK INSERT [Noname1] 
FROM 'D:\Noname1.txt' WITH  ( FIELDTERMINATOR ='^', ROWTERMINATOR= '\n') 

找了半天也不知道啥问题,只好上来求助了!!!


消息
错误 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].列 13' 无效的数据。”。
 (SQL Server 导入和导出向导)
 
错误 0xc0209029: 数据流任务 1: SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“目标 - AR_RM_VIP_20141015_060006.输入[Destination Input]”失败,错误代码为 0xC020907B,而且针对“目标 - AR_RM_VIP_20141015_060006.输入[Destination Input]”的错误行处理设置指定一旦出错就失败。在指定组件的指定对象上出错。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
 (SQL Server 导入和导出向导)
 
错误 0xc0047022: 数据流任务 1: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“Destination Input”(127)时,组件“目标 - AR_RM_VIP_20141015_060006”(114)的 ProcessInput 方法失败,错误代码为 0xC0209029。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
 (SQL Server 导入和导出向导)
 
错误 0xc02020c4: 数据流任务 1: 无法向数据流任务缓冲区添加行,错误代码为 0xC0047020。
 (SQL Server 导入和导出向导)
 
错误 0xc0047038: 数据流任务 1: SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。源 - AR_RM_VIP_20141015_060006_txt 的 PrimeOutput 方法返回了错误代码 0xC02020C4。管道引擎调用 PrimeOutput() 时该组件返回了一个失败代码。虽然该失败代码只与该组件有关,但这个错误是致命的,管道已停止执行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
 (SQL Server 导入和导出向导)
 

------解决思路----------------------
无效的数据一般就是txt内容无法转换为对应字段的数据类型。
可以把txt数据不断对分,找出错误的行。
------解决思路----------------------
换个导入方式,换成固定长度试试。
------解决思路----------------------
2012客户端的bug,你用08试试看
------解决思路----------------------
文本文件用 Unicode 或 UTF-8 格式。
数据库字段用 nvarchar 类型。
------解决思路----------------------
引用:
Quote: 引用:

无效的数据一般就是txt内容无法转换为对应字段的数据类型。
可以把txt数据不断对分,找出错误的行。

查出问题数据了,是地址中的一个繁体字‘區’,只要是这个字,就会报错,替换成其他字,也试了几个繁体字,都没有问题,就这个区的繁体字有问题,如果导入文本文件中任意字段的值中含有该字‘區’,就会报错

查看SQL2012的数据库
右击-属性-选项-排序规则,
改变排序规则为Chinese_Taiwan_Bopomofo_CI_AS
看下可以解决不~
  相关解决方案