SSIS 中的别名参数

Posted

技术标签:

【中文标题】SSIS 中的别名参数【英文标题】:Alias parameters in SSIS 【发布时间】:2009-07-16 12:50:20 【问题描述】:

我在 SSIS 中使用 OLE DB 命令,其 SQL 命令如下所示:

UPDATE DBO.CLIENT
SET
    TimeZoneID = ?,
    DaylightSavingTime = ?,
    ModifiedBy = ?,
    MicrosPropertyID = ?,
    IsOffline = ?,
    GlobalReporting_MaskPatronNumberType = ?,
    GlobalReporting_PatronNumberReadableCharacters = ?,
    GlobalReporting_MaskPrimaryCardType = ?,
    GlobalReporting_PrimaryCardReadableCharacters = ?,
    BICAddedDateTime = ?,
    BICUpdatedDateTime = ?,
    IsDBInDailyBoardRate = ?
WHERE 
    ClientID = ?

当我尝试进行列映射时,这些参数显示为 PARAM_0、PARAM_1、PARAM_2、PARAM_3 等。有没有办法让它们显示为列名?

【问题讨论】:

【参考方案1】:

我发现 SSIS 将从存储过程中读取列名,而不是从 SQL 命令中读取 OLE DB 命令!

但是,它不会忽略参数名称的 @,因此智能匹配不适用于 CustomerId 与 @CustomerId。

+1 对于使用存储过程的每个人。 :-)

【讨论】:

【参考方案2】:

您可以在“输入/输出属性”选项卡中手动重命名它们(它们位于“外部列”下),但它们将始终实例化为 PARAM_0PARAM_1、...

【讨论】:

@Eric:SSIS 2008 不允许我更改名称。 @Tapori:你说得对,我在想 OLEDB Source。更新以反映 OLEDB 命令任务。 @Eric:如果您使用存储过程而不是 SQL 命令,SSIS 会识别参数并按名称而不是 PARAM_0、1 等将它们拉入。我会立即尝试您的建议。 @Eric:我在 SSIS 中发现了一个错误。我可以重命名它,但如果我关闭并重新打开 SSIS,它就会恢复到原来的名称。

以上是关于SSIS 中的别名参数的主要内容,如果未能解决你的问题,请参考以下文章

WHERE Column IN 来自 SSIS 上的 DB2 中的参数

Powershell Array Strings - 在 SSIS 中映射不同的变量参数名称

在ssis包中的sp中传递参数问题

如何将参数传递给 ssis 中的 ado.net 源?

如何使用 sql 表中的坐标作为 Weather URL API SSIS 脚本中的参数输入?

如何在 ADO.NET 源 SSIS 中传递参数