在ado.net源中传递参数

时间:2016-09-27 00:46:18

标签: ssis ssis-2012 ssis-2008

我想在ado.net源代码中传递一个参数化查询,我想知道这样做的唯一方法就是使用表达式。

所以这是我的表达

"SELECT
    LEDGER_YR_MO,
    LOCATION,
    FDR_FND_NO,
    FDR_INVST_POOL_CD,
    FISCAL_YR_BEG,
    FISCAL_YR_END,
    POST_DATE,
    FDR_FND_TTL,
    FDR_FND_TYPE_CD,
    FDR_FND_PURP_CD,
    FDR_CR_ELIG_FL,
    FDR_ANN_CR_RATE,
    FDR_MTH_CR_RATE,
    FDR_CR_AMT,
    FDR_TR_ELIG_FL,
    FDR_ANN_TR_RATE,
    FDR_MTH_TR_RATE,
    FDR_60MTH_AVG_SHARE_PRC,
    FDR_TR_AMT,
    FDR_PROJ_GEP_INCM_AMT,
    FDR_TR_AUGMENTATION_AMT,
    FDR_GEP_NET_PAYOUT_AMT
FROM
    FS0TST.UCOP_FDR_TR_CR where 
LEDGER_YR_MO =  '"+ (DT_WSTR,30)  @[User::END_LEDGER_YR] +"'  "

但是当我点击评估表达式时,我看到空白而不是变量..任何人都知道可能的问题: 这里的评估表达式似乎是

SELECT
    LEDGER_YR_MO,
    LOCATION,
    FDR_FND_NO,
    FDR_INVST_POOL_CD,
    FISCAL_YR_BEG,
    FISCAL_YR_END,
    POST_DATE,
    FDR_FND_TTL,
    FDR_FND_TYPE_CD,
    FDR_FND_PURP_CD,
    FDR_CR_ELIG_FL,
    FDR_ANN_CR_RATE,
    FDR_MTH_CR_RATE,
    FDR_CR_AMT,
    FDR_TR_ELIG_FL,
    FDR_ANN_TR_RATE,
    FDR_MTH_TR_RATE,
    FDR_60MTH_AVG_SHARE_PRC,
    FDR_TR_AMT,
    FDR_PROJ_GEP_INCM_AMT,
    FDR_TR_AUGMENTATION_AMT,
    FDR_GEP_NET_PAYOUT_AMT
FROM
    FS0TST.UCOP_FDR_TR_CR where 
LEDGER_YR_MO =  ''

1 个答案:

答案 0 :(得分:1)

单击“评估表达式”按钮时,实际上没有任何代码被执行,因此SSIS唯一可以看到的是您为变量提供的静态默认值。

如果要在“评估表达式”中查看值而不是空白,则必须为变量指定默认值,即使您不打算使用该值。执行SSIS包时,用于填充变量的任何代码都将覆盖默认值,因此使用默认值是无害的。