首页 > 解决方案 > 配置 SSIS 包错误“找不到参数 'myParm',因为它不存在。”

问题描述

我们使用的是 SQL Server 2017。当我尝试配置 SSIS 包并将参数的值设置为包中的默认值以外的值时,我收到错误“找不到参数‘myParm’,因为它确实不存在。”</p>

SSIS 包中确实存在参数“myParm”。

这是生成的 SQL:

EXEC [SSISDB].[catalog].[set_object_parameter_value] @object_type=30, 
@parameter_name=N'myParm', @object_name=N'mySSIS.dtsx', @folder_name=N'myFolder', 
@project_name=N'myProject', @value_type=R, @parameter_value=N'myParmValue'

错误出现在存储过程 set_object_parameter_value 中的这条语句中

SELECT @parameter_id = [parameter_id], @sensitive = [sensitive],
@parameter_data_type = [data_type]
FROM [catalog].[object_parameters]
WHERE [project_id] = @project_id AND [object_type] = @object_type
AND [parameter_name] = @parameter_name COLLATE SQL_Latin1_General_CP1_CS_AS
AND [object_name] = @object_name

奇怪的是,当我在存储过程之外运行此语句时,它成功运行并返回 @parameter_id 的值

DECLARE @sensitive bit
DECLARE @parameter_id bigint
DECLARE @parameter_data_type nvarchar(128)
SELECT @parameter_id = [parameter_id], @sensitive = [sensitive],
@parameter_data_type = [data_type]
FROM [catalog].[object_parameters]
WHERE [project_id] = 5 AND [object_type] = 30 AND [parameter_name] = 
'myParm' COLLATE SQL_Latin1_General_CP1_CS_AS
AND [object_name] = 'mySSIS.dtsx'
SELECT @parameter_id

但是,当我在存储过程 set_object_parameter_value 中运行此语句时,它给出了相同的错误“找不到参数 'myParm',因为它不存在。”</p>

当我在存储过程 set_object_parameter_value 中运行此语句并注释掉这两行时,它运行成功

WITH EXECUTE AS 'AllSchemaOwner'
EXECUTE AS CALLER

我使用 Windows 身份验证 myDomain\myAccount 登录到 SSMS

标签: sql-serverssis

解决方案


推荐阅读