【问题标题】:Using T-SQL to execute SSIS package does not return any result使用T-SQL执行SSIS包不返回任何结果
【发布时间】:2018-12-19 20:24:14
【问题描述】:

我有一个简单的 SSIS 包,它使用 C# 生成 Excel 文件并将其放置到指定位置。

包在设计模式下运行良好。

包部署成功:

但是,当我尝试从 SSMS 执行它时,它只显示@execution_id

DECLARE @execution_id BIGINT

EXEC [SSISDB].[catalog].[create_execution] 
        @package_name=N'ExcessCopy1.dtsx',
        @execution_id=@execution_id OUTPUT,
        @folder_name=N'MonthlyReports',
        @project_name=N'MonthlyReports',
        @use32bitruntime=False,
        @reference_id=Null

SELECT @execution_id

DECLARE @var0 smallint = 1

EXEC [SSISDB].[catalog].[set_execution_parameter_value] 
        @execution_id,
        @object_type=50,
        @parameter_name=N'LOGGING_LEVEL',
        @parameter_value=@var0

EXEC [SSISDB].[catalog].[start_execution]  @execution_id
GO

如果我注释掉SELECT @execution_id,那么我会得到

命令成功完成

但是它不会将文件传送到指定的位置。

可能是什么问题以及如何解决此问题?

我可以在集成服务目录下看到包。 但是我在 SSISBD 中找不到这个包:

我能够看到错误是什么:

【问题讨论】:

标签: sql-server tsql ssis


【解决方案1】:

可能是什么问题

最可能的解释是,该软件包将文件放在您不期望的位置,因为它现在在服务器而不是您的本地机器上执行。几乎同样可能的是,程序包遇到了未传递回 SSMS 窗口的错误。

我该如何解决这个问题?

如果包在 SSISDB 中,您可以右键单击它并查看“所有执行”报告以验证该包是否已执行,然后深入查看该执行的“所有消息”以查看发生了什么.

【讨论】:

  • 谢谢。该包不在 SSISDB 中。有什么办法可以把它放在那里吗?这样我可以解决问题吗?
  • 嗯,你怎么确定?除非该包位于 SSISDB 中,否则您似乎不太可能使用 [SSISDB].[catalog].[start_execution] 执行该包。如果它不在 SSISDB 中,它在哪里?事实上,根据您问题中的第一张图片,它在 SSISDB 中。转到您从中截取该图像的屏幕,然后右键单击该包。 (你在图中圈出的那条线)
  • 您的包肯定在 SSISDB 中,基于您的图像和 SQL @Oleg。如果不是,那么我们拥有的所有信息都与您的问题无关,因为它们都与 SSISDB 相关。
  • @Larnu 谢谢。我不擅长 SSIS,刚开始为我的工作实施它。但是我可以在Integrational Service Catalog 下看到包,但是在所有数据库所在的 SSISDB 中找不到它。我更新了图片。
  • @Oleg 不要看那里。在我之前的评论中,我在最后一句话中确切地告诉了您要做什么。右键单击您在第一张图像中圈出的线。然后转到“所有执行”报告,并深入了解“所有消息”以了解运行脚本时发生的执行情况。
【解决方案2】:

您的 SQL Server 缺少 ACE OLEDB 12.0 驱动程序。你可以在这里得到它:https://www.microsoft.com/en-us/download/details.aspx?id=13255

如果您出于某种原因需要同时安装 64 位和 32 位版本,您可以从上面的链接安装 64 位,但它不会让您同时安装 32 位版本,所以您可以使用旧版本的 32 位驱动程序,它可以与 64 位驱动程序共存。你可以在这里得到那个:https://www.microsoft.com/en-us/download/details.aspx?id=23734

【讨论】:

  • 谢谢。我有一段时间有这个错误。而且无论我安装什么驱动程序 - 问题仍然存在。
  • 您将它们安装在运行包的 SQL 服务器上,对吧?
  • 是的。我有开发和生产环境。我的项目正在开发中,当我将它部署到生产并从 SSMS 运行它时,它给了我这个错误。我在生产中安装了这些驱动程序,但它仍然给我这个错误。
猜你喜欢
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多