sql-server - 配置 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
解决方案
推荐阅读
- postgresql - 列出 Postgres 上所有具有数组数据类型的表
- python - 在python中打印布尔值
- microsoft-graph-api - 用于访问团队和团队的组以提取文档的 Graph API
- c# - 带有 XML 标记的 POST 属性被替换为在控制器中?
- python - 如何在 OpenCV 中使用 OpenPose 获取各个身体部位的大小?
- javascript - 更改位置和名称时,脚本不起作用
- powershell - 在 PowerShell 中设置变量和静音输出
- typescript - 在`.d.ts`中导出枚举会导致“无法解决”错误
- javascript - 尝试将json中的图像从我的nestjs api发送到另一个api
- javascript - 如何在 React 中默认选择索引项