将csv文件导入表

时间:2013-01-09 14:54:20

标签: sql sql-server sql-server-2005 csv

我正在尝试使用向导将csv文件导入sql server 2005中的表。 但是当我导入文件总是给我这个错误:

  

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

     

错误0xc020902a:数据流任务1:“输出列”第15列“   (70)“失败,因为发生截断,截断行   处理“输出列”列15“(70)”指定失败   截断。在指定的对象上发生截断错误   指定的组件。 (SQL Server导入和导出向导)

     

错误0xc0202092:数据流任务1:处理时发生错误   数据行1上的文件“C:\ PEP_ENTITIES_71.csv”。(SQL Server导入和   导出向导)

     

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

我做错了什么?此文件是从查询导出,然后我删除所有记录并尝试导入。

2 个答案:

答案 0 :(得分:2)

平面文件导入任务的默认长度为VARCHAR(50)。您需要转到平面文件连接页面的“高级”属性,并手动更改长度以匹配目标表。建议类型也应该有一个选项可以匹配您正在使用的元数据,但它会对文件中的行进行采样,因此它可能不如仅手动设置类型那么准确。

答案 1 :(得分:0)

可能是您尝试从CSV中导入数据,这对于您要导入的字段来说太大了。也许您需要增加SQL表中字段的大小?

您是否尝试从CSV导入一行非常小的数据,看看是否有效?如果是这样的话,在表格的其余部分某处可能存在过大的数据。