SQL Server导入和导出向导

时间:2015-01-07 19:18:12

标签: sql-server sql-import-wizard

我正在将CSV文件导入现有数据库并收到一些错误

  
      
  • 执行(错误)   消息   错误0xc02020a1:数据流任务1:数据转换失败。列"主管"的数据转换返回状态值4和状态文本"文本被截断或目标代码页中的一个或多个字符不匹配。"。   (SQL Server导入和导出向导)
  •   
     

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

     

错误0xc0202092:数据流任务1:处理文件时发生错误" C:\ Users \ administrator.WDS \ Desktop \ loc800members.csv"在数据行83上。    (SQL Server导入和导出向导)

     

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

以下是我要导入的表的示例。

  

http://i.imgur.com/4zsJqgI.jpg

以下是主管领域的属性

  

http://i.imgur.com/r5EonQc.jpg

以下是我要导入的表格中的列。

  

i.imgur.com/mD5KlCC.jpg

2 个答案:

答案 0 :(得分:3)

从外观上看,数据库中的字段不够长,无法支持您尝试导入的数据。您需要缩短数据或(可能更理想地)增加数据库中字段的大小。看起来它来自“主管”专栏(尽管您可能想要仔细检查其他列,以确保它不会在其他地方发生)。

简而言之,正在发生的事情是,它正在尝试按原样导入所有内容,并最终命中csv文件中的字段太长而无法正确复制。而不是砍掉剩余的数据(截断)而不是抛出错误并有效地放弃。我猜测数据库中的字段是varchar或nvarchar类型,具有设置大小。您应该能够在数据库中快速调整大小以提取数据。您可能还需要修改相关的存储过程(如果有的话),因此数据不会被截断。

答案 1 :(得分:2)

您可以在向导中更改字段大小,默认值为50个字符,这通常太小。

在"选择数据源"屏幕,在您给出文件位置并检查了要更改的任何格式之后,然后单击高级。对于每个字段,您将看到数据类型和输出列宽。将其更改为更大的值。我第一次看文件时通常使用500,直到我看到实际尺寸是什么。要一次更改所有列大小,请突出显示第一列的名称,然后按住Shift键并单击最后一列。然后改变大小。