【问题标题】:OLE DB Source to Excel Destination - Process is StuckOLE DB 源到 Excel 目标 - 进程被卡住
【发布时间】:2019-12-17 15:47:33
【问题描述】:

我有以下数据流任务设置(见图)。

它从 OLE DB 源中获取正确数量的行,并通过数据转换项传递所有内容。但是,该过程随后卡在“排序和 Excel 目标”项的 29,379 行中的 10,104 行(我仅按字母顺序按一列排序)。

为什么会卡住,我该怎么做才能让它摆脱这种困境?

谢谢

【问题讨论】:

    标签: excel ssis oledb ole dataflowtask


    【解决方案1】:

    需要查看排序转换的属性,但这可能是问题所在,请确保未选中以下内容:

    谢谢。

    Gav

    【讨论】:

    • 感谢加夫!绝对不是这个。当我检查调试输出时,我看到这条奇怪的消息:“程序 '[10332] DtsDebugHost.exe: DTS' 已退出,代码为 0 (0x0)。”而且,在 OLE DB Source SQL 查询中,如果我选择 Top 10,则整个过程完成而不会卡住。
    • 你好,沙耶,不用数据转换能用吗?我过去知道如果数据没有正确转换,它可能会影响排序。如果它在没有数据转换的情况下工作,那么你知道这是问题而不是排序。试试看,让我知道。谢谢加夫
    • 嗨,加夫!我是个白痴。因为我错误地配置了事件处理程序来处理失败的任务,即脚本任务以某种方式发送电子邮件,所以它不能正常工作,所以它卡在事件处理程序上,我看不到真正的错误。所以我在事件处理程序中禁用了脚本,问题实际上是 Excel 目标的输入列之一,即长度超过 255。我已将其配置为仅截断此列,而不是在大小超过 255 时失败
    【解决方案2】:

    问题在于,当插入 Excel 数据源时,每列的最大大小为 255,但映射的 SQL Server 列中值的大小平均大于 700。

    因此有必要将数据转换中的最大大小设置为 255(大列)以对应 Excel 最大列大小。 SSIS 自然会截断该列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2019-03-23
      相关资源
      最近更新 更多