我们可以通过存储过程在SSDB内执行SSIS包吗?
我的软件包中有ORACLE和SQL数据连接吗?我们可以通过参数传递它们吗?
还有什么建议吗?
答案 0 :(得分:1)
如果您的程序包已部署到目录,则可以通过调用多个SSISDB存储过程来执行它。在连接管理器中,您还可以参数化选项,例如连接字符串,服务器名称或初始目录。右键单击连接管理器,选择“参数化”,选择属性,然后将其与新参数或现有参数匹配。在下面的示例中,@execution_id参数将所有配置绑定到该执行实例。可以通过从SSIS目录中单击“执行软件包”窗口上的“脚本”按钮来生成此SQL。
--configure execution, if you're referencing an environment variable
-- @reference_id will tie this variable to your parameter otherwise it's null
Declare @execution_id bigint
EXEC [SSISDB].[catalog].[create_execution] @package_name=N'Your Package.dtsx', @execution_id=@execution_id OUTPUT,
@folder_name=N'Your Folder', @project_name=N'Your Project', @use32bitruntime=False, @reference_id=Null
Select @execution_id
--set value for parameter below
DECLARE @var0 sql_variant = N'Connection String'
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=30,
@parameter_name=N'ConnectionStringParameter', @parameter_value=@var0
--logging level, this is optional and will default to 1 (basic) if omitted
DECLARE @var1 smallint = 1
EXEC [SSISDB].[catalog].[set_execution_parameter_value] @execution_id, @object_type=50,
@parameter_name=N'LOGGING_LEVEL', @parameter_value=@var1
--execute package
EXEC [SSISDB].[catalog].[start_execution] @execution_id
GO