【问题标题】:Importing csv file to table将csv文件导入表
【发布时间】:2012-12-23 15:52:07
【问题描述】:

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

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

错误 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。当管道引擎调用时组件返回失败代码 素数输出()。故障代码的含义由 组件,但错误是致命的并且管道停止执行。 在此之前可能会发布带有更多信息的错误消息 关于失败。 (SQL Server 导入导出向导)

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

【问题讨论】:

  • 您是否正在导入现有表?表结构是什么?
  • 检查Column 15的数据类型。上述错误的一个可能原因可能是由于列的大小导致数据被截断。尝试增加列的大小为csv

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


【解决方案1】:

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

您是否尝试过从 CSV 导入单个非常小的数据行以查看是否可行?如果是这样,则工作表其余部分中某处的数据过大可能是问题所在。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 2011-04-07
      • 2012-06-20
      • 2019-10-21
      • 2012-05-15
      相关资源
      最近更新 更多