2016-09-27 2 views
0

Ich wollte eine parametrisierte Abfrage in Ado.net-Quelle übergeben und ich rea don diesen Beitrag, dass nur die Verwendung von Ausdrücken ist.Parameter übergeben in ado.net Quelle

So, hier ist mein Ausdruck

"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] +"' " 

aber wenn ich den Ausdruck auswerten klicken, ich sehe leere statt Variable ..does jemand das mögliche Problem kennen: Hier ist die Evaluierung ist sieht Ausdruck wie

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 = '' 
+2

Überprüfen Sie Ihren END_LEDGER_YR-Parameter im Paket. Es muss leer sein. Geben Sie ihm einen Standardwert –

+0

Und Ausdrücke ist nicht nur für Parameterabfragen. Sie können den SQL-Befehl als Datenzugriffsmodus mit dem Parameter "?" und setzen Sie den Parameterwert, indem Sie auf die Schaltfläche Parameter klicken und die Variable darauf abbilden. –

+0

@SolowDeveloper Sie können keine Parameterzuordnung mit ado.net-Quellenabfragen durchführen. Das ist nur mit OLEDB-Abfragen möglich. –

Antwort

1

Wenn Sie auf die Schaltfläche Ausdruck auswerten klicken, wird tatsächlich kein Code ausgeführt. Das einzige, was SSIS betrachten kann, ist der statische Standardwert, den Sie Ihrer Variablen gegeben haben.

Wenn Sie im Auswertungsausdruck einen Wert anstelle eines Leerzeichens anzeigen möchten, müssen Sie Ihrer Variablen einen Standardwert zuweisen, auch wenn Sie diesen Wert nicht verwenden möchten. Wenn das SSIS-Paket ausgeführt wird, überschreibt der Code, den Sie zum Auffüllen der Variablen verwenden, den Standardwert, sodass ein Standardwert harmlos ist.