我正在尝试使用向导将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导入和导出向导)
我做错了什么?此文件是从查询导出,然后我删除所有记录并尝试导入。
答案 0 :(得分:2)
平面文件导入任务的默认长度为VARCHAR(50)
。您需要转到平面文件连接页面的“高级”属性,并手动更改长度以匹配目标表。建议类型也应该有一个选项可以匹配您正在使用的元数据,但它会对文件中的行进行采样,因此它可能不如仅手动设置类型那么准确。
答案 1 :(得分:0)
可能是您尝试从CSV中导入数据,这对于您要导入的字段来说太大了。也许您需要增加SQL表中字段的大小?
您是否尝试从CSV导入一行非常小的数据,看看是否有效?如果是这样的话,在表格的其余部分某处可能存在过大的数据。