Salve a tutti. Ho realizzato un pacchetto SSIS che estrae dati da un AS400 andando a collegarsi ad esso con una connessione tramite ODBC. La query che restituisce i dati da caricare in una tabella del mio db locale ha come clausola where una data. Al momento seleziona tutti i record a partire dal 20090101 e vorrei sostituire quel valore con un parametro al quale passerò il valore della data corrente meno 1 mese.
Al momento io sono riuscito a definire una variabile che contiene tale valore e lo faccio così:
REPLACE((substring( (DT_WSTR, 30) DATEADD( "Month",-1, getdate()),1,10)),"-","" )
ora nella query vado ad inserire il ? al posto del valore fisso, in modo che io possa poi passare un parametro. Quindi la query diventerà del tipo:
select * from mytab where data >= ?
Ora però non so dove andare ad inserire i parametri.
Sulla documentazione di SQL Server SSIS leggo come si fa a legare i parametri ad un blocco del tipo "Esegui istruzione SQL", ma io sono in blocco flusso dati e non sembra che io possa specificare dei parametri in questo.
In alternativa potrei eseguire l'istruzione sql in un blocco "Esegui istruzione SQL", ma poi non so come rendere quest'ultimo una sorgente per un blocco "Flusso di dati".
Sapete darmi una mano?
P.S. Dimenticavo di precisare, anche se non conta molto, che il campo che rappresenta la data su AS400 non è in realtà una data, ma un intero.