代码之家  ›  专栏  ›  技术社区  ›  Serdia

使用t-sql执行ssis包不会返回任何结果

  •  1
  • Serdia  · 技术社区  · 7 年前

    我有一个简单的ssis包,它使用c生成一个excel文件并将其放到指定的位置。

    在设计模式下,包工作良好。

    已成功部署包:

    enter image description here

    但是,当我尝试从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
    

    enter image description here

    如果我发表评论 SELECT @execution_id 然后我得到

    命令成功完成

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

    enter image description here

    什么是问题,我如何解决这个问题?

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

    enter image description here

    我能看到错误是什么:

    enter image description here

    2 回复  |  直到 7 年前
        1
  •  2
  •   Tab Alleman    7 年前

    可能是什么问题

    最可能的解释是,包将文件放在一个您不期望的位置,因为它现在正在服务器上执行,而不是您的本地框。几乎同样可能的是,包遇到了一个错误,它没有返回到ssms窗口。

    我怎样才能解决这个问题呢?

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

        2
  •  0
  •   digital.aaron    7 年前

    您的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