【问题标题】:Import excel to sql server Executing Error (SSIS)将excel导入sql server执行错误(SSIS)
【发布时间】:2018-10-18 15:10:28
【问题描述】:

我第一次尝试将 excel 文件导入到 sql server 时出现此错误。请你帮助我好吗?不知道发生了什么:|

操作停止...

  • 初始化数据流任务(成功)

  • 初始化连接(成功)

  • 设置 SQL 命令(成功)

  • 设置源连接(成功)

  • 设置目标连接(成功)

  • 验证(成功)

  • 准备执行(成功)

  • 预执行(成功)

  • 执行(错误)消息 留言 错误 0xc020901c:数据流任务 1:源出错 - Sheet1$.Outputs[Excel Source 源上的输出].Columns[威胁] - Sheet1$.Outputs[Excel 源 输出]。返回的列状态为:“文本被截断或一个或 目标代码页中有更多字符不匹配。”。(SQL Server 导入和导出向导)

错误 0xc020902a:数据流任务 1: “源 - Sheet1$.Outputs[Excel 源输出].Columns[威胁]”失败 因为发生了截断,并且截断行处置 “源 - Sheet1$.Outputs[Excel 源输出].Columns[威胁]” 指定截断失败。发生截断错误 指定组件的指定对象。 (SQL Server 导入和 导出向导)

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

  • 正在复制到 [dbo].[Sheet1$](已停止)

  • 执行后(成功)消息信息 0x4004300b:数据流任务 1:“目标 - Sheet1$”写入 0 行。 (SQL Server 导入和 导出向导)

【问题讨论】:

标签: sql-server excel import ssis ssis-2012


【解决方案1】:

您正在导入的数据可能包含大于表格列大小的文本。

最大化表格列的大小,然后尝试。

【讨论】:

  • 事情就是这样。它仍然不起作用,我已经尝试将其更改为 varchar(max)
【解决方案2】:

检查源和目标上Threat 列的长度。请根据excel上的长度调整,基本增加。

或者,在 Excel 源代码编辑器中单击错误输出选项卡。

选择Threat 列并在Truncation 列中将值设置为Ignore failure。

这应该会有所帮助。

【讨论】:

  • 如何为该列配置源上的输出?你也必须改变它。
  • 您所说的“您的源上的输出是如何配置的”是什么意思?
【解决方案3】:

然后查看此 Stackoverflow 链接 enter link description here 中的想法。它可能正在尝试导入一些额外的空白行,您可以允许(通过更改 ALLOW NULLS 选项),或者将失败的行通过管道传输到 SSIS 中的不同数据集中,以分别处理失败的行

【讨论】:

  • 所有列都允许为空
【解决方案4】:

您是否要手动创建 DFT?如果是这样:

1) 创建新的 Excel 连接管理器 - 链接您的 Excel 文件
2) 创建新的 OLE DB 连接管理器 - 选择您的数据库和表。
3) Excel 源码
4) 数据转换 - 将 EXCEL 列转换为 DT_STR,使其变为 Varchar 而不是 NVARCHAR。
5) OLE DB Destination,即您的 SQL 服务器表。

或者,您可以将列设置为 NVARCHAR 并且它将匹配 EXCEL 但如果它是 VARCHAR 列,则需要在数据转换中将数据转换为 DT_STR。如果您需要更多帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    相关资源
    最近更新 更多