SQL Server:通过平面文件导入数据失败错误0xc02020a1:数据流任务1:数据转换失败

时间:2013-02-01 02:37:58

标签: sql sql-server-2012

我正在尝试将CS​​V文件(逗号分隔)上传到SQL Server 2012(vs 11.0.2100.60)表。为了测试目的,我创建了一个所有列等于nvarchar(MAX)的表,因为我只想将数据放入数据库进行测试。不幸的是,我一直收到以下错误:

  

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

     

错误0xc020902a:数据流任务1:“来源 -   Book2_txt.Outputs [平面文件源输出] .Columns [Column 2]“失败   因为截断发生,截断行处置   “Source - Book2_txt.Outputs [平面文件源输出] .Columns [Column   2]“指定截断失败。发生截断错误   指定组件的指定对象。 (SQL Server导入   和导出向导)

     

错误0xc0202092:数据流任务1:错误   处理文件时发生   数据行3上的“C:\ Users \ shalinp \ Desktop \ MISO \ junk \ Book2.txt”。(SQL   服务器导入和导出向导)

     

错误0xc0047038:数据流任务1:   SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。 PrimeOutput方法   Source - Book2_txt返回错误代码0xC0202092。组件   管道引擎调用PrimeOutput()时返回失败代码。   失败代码的含义由组件定义,但是   错误是致命的,管道停止执行。可能有错误   此前发布的消息包含有关失败的更多信息。   (SQL Server导入和导出向导)

我的文件很大,但我创建了一个只有前4行数据要测试的新文件。不幸的是stackoverflow不允许你上传文件所以我无法提供它(如果我弄错了,请纠正我吗?)。

但这是剪切和粘贴:

1/1/2010,ARNLD HAZELTON BASE,HAZLTON HAZLTARNOL34_1 1 (LN/ALTW/ALTW),ACTUAL,1,($23.18)
1/1/2010,MANISTIQ_T1_T1_XF,MANISTIQ T1 T1 (XF/WEC/*),,1,($12.47)
1/1/2010,ONT-NYIS BASE,BECK2 BECK2GPACKAR_1 A (LN/ONT/NYISO); BECK2 BECK_BNIAG_3_1 A (LN/ONT/NYISO); BECK2 BECK_ANIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES1_1 A (LN/ONT/NYISO); BECK2 BECK2GNIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES__1 A (LN/ONT/NYISO),ACTUAL,1,($6.05)
1/1/2010,PADDCK_TWNLINE FLO PADDCK_BLACKHWK,TOWNELIN TLR_PAD 1 (LN/ALTE/ALTE),PADDOCK-BLACKHAWK 138 (X-53),1,($3.06)

我怀疑故障发生在第3行第3列,它有一个长文本字符串:

BECK2 BECK2GPACKAR_1 A (LN/ONT/NYISO); BECK2 BECK_BNIAG_3_1 A (LN/ONT/NYISO); BECK2 BECK_ANIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES1_1 A (LN/ONT/NYISO); BECK2 BECK2GNIAG_3_1 A (LN/ONT/NYISO); STLAWRE1 SAUND_MOSES__1 A (LN/ONT/NYISO)

那就是说,这就是我使用nvarchar(max)类型的原因。无论如何,我很感激帮助。

谢谢。

0 个答案:

没有答案
相关问题