数据流任务成功执行但未向 Excel 文件写入任何行
Posted
技术标签:
【中文标题】数据流任务成功执行但未向 Excel 文件写入任何行【英文标题】:Data flow task executing successfully but not writing any rows to Excel file 【发布时间】:2012-06-18 18:41:18 【问题描述】:我正在处理从 SQL 服务器获取数据并插入 Excel 文件的 SSIS 包...在 数据流任务中我使用了 OLE Db 源和Excel 目的地。
配置 OLE Db 源后,我可以预览结果行甚至数据流任务成功执行而不会出现任何错误..但不插入任何行..
【问题讨论】:
【参考方案1】:幸运的是我找到了答案,我做了两件事..
我刚刚删除了旧的数据流任务,我尝试了很多不同的设置和参数...并重新构建数据流任务...
在 SQL 查询中,我写的是完全限定名称而不是 'Use Database' 语句。
希望这会对某人有所帮助..
【讨论】:
是的,您绝对应该在其中放一个 SQL 查询 - 您应该能够在数据流源的属性中选择数据库。 我刚刚遇到了类似的问题。在我的例子中,目标组件报告写入了所有 ~30k 行,但SELECT COUNT(*)
只显示 ~10k 行。重新运行包会导致它尝试添加丢失的约 20k 行并报告成功,但数据库中的行数不会改变。我没有重建整个任务,而是将现有任务的内容复制粘贴到一个新任务中,然后删除并重新添加目标。这解决了问题。
欢迎来到 SSIS - 删除所有工作并重新进行工作的地方,比根本原因分析和发现问题更快。每当我对查询或目标文件进行更改时,都会发生这种情况,即使在尝试了所有推荐的故障排除提示之后,删除/重新创建是我最终解决此问题的方法。【参考方案2】:
您是否尝试过首先写入平面(文本)文件以确保数据来自您的数据流任务并进入结果?
请绝对确保您已将列从源映射到目标。
【讨论】:
感谢 N West,我已经尝试了您建议的方法,但仍然没有运气......我只是从头开始构建 DFT,并且对 Sql 脚本进行了一些更改,它开始工作......【参考方案3】:这里有一个清楚的解释是怎么回事。很可能,您正在使用表变量... SSIS OLE DB Source Using Table Variables Returns No Rows
【讨论】:
【参考方案4】:我的问题是 SQL 命令中的打印语句。我把它注释掉了,它起作用了。预览与那里的打印语句一起工作。棘手...
【讨论】:
【参考方案5】:我已经拥有运行良好并正确写入文件的 SSIS 包。我更改了查询,它停止在文本文件中写入任何内容,即使我有可以在预览中看到的记录。 解决方案:有时您的查询在查询开始之前具有 USE database 命令。删除该命令,它将起作用。 希望它可以帮助某人。 干杯。
【讨论】:
【参考方案6】:我需要在我的数据流任务中选择Connection Manager
节点并将ConnectionString
属性设置为我希望创建的文件的名称;如果不填写此字段,则不会出现任何文件。
【讨论】:
您使用平面文件连接管理器制作了类似问题的 Excel 输出? 抱歉,为清楚起见进行了编辑。多种源类型使用Connection Managers
和 ConnectionString
属性。【参考方案7】:
我发现如果我重新打开我的脚本组件并选择“运行代码分析”,它会执行较慢的“全部重建”(Visual Studio 2017),它会再次“唤醒它”,然后处理行。总体而言,尽管 SSIS/VS 2017 是内存错误的噩梦,但崩溃会摧毁整个 csproj 和文件夹结构。我不得不多次重新创建该项目。
【讨论】:
那么,进行备份?以上是关于数据流任务成功执行但未向 Excel 文件写入任何行的主要内容,如果未能解决你的问题,请参考以下文章