SSIS et envoi de requête avec date à Oracle

J'essaye de créer un stream pour tirer des données d'une table d'Oracle dans une table de SQL Server. J'envoie la requête suivante à Oracle pour get datatables:

select distinct CHLD.id, nvl(chld_c_spl, 'N'), to_char(chld_d_start, 'YYYY-MM-DD') chld_d_start, to_char(chld_d_end, 'YYYY-MM-DD') chld_d_end from child chld, picture ptct where CHLD.id = PTCT.chld_id and nvl(chld_d_end, sysdate) >= to_date('01-JAN-2014') and chld_c_veri in ('HC','DR') and nvl(ptct_term, ptct_end) >= to_date('01-JAN-2014') 

Lorsque j'exécute la requête dans Oracle, 505 lignes sont renvoyées. Lorsque j'exécute le package SSIS, 1 504 lignes sont insérées. Pour une raison quelconque, il semble que la requête SSIS passe ne regarde pas la clause where de la table ptct (nvl (ptct_term, ptct_end)> = to_date ('01 -JAN-2014 ')) car toutes les lignes supplémentaires sont des lignes qui n'ont pas d'input valide dans la table picture (ptct).

Quelqu'un a-t-il des conseils sur ce qui se passe ici? La requête d'origine utilisait une clause exists sur la table ptct au lieu de la jointure, mais cela ne fonctionnait pas, donc je me suis converti à la jointure. Lorsque la clause exist était là, des résultats similaires à ceux décrits ci-dessus ont été observés.

Très probablement vos parameters NLS sont différents entre votre outil de requête Oracle (sqlplus, toad …) et SSIS. Essayez de donner votre date explicitement, comme to_date ('2014-01-01', 'AAAA-MM-JJ').

 select distinct CHLD.id, nvl(chld_c_spl, 'N'), to_char(chld_d_start, 'YYYY-MM-DD') chld_d_start, to_char(chld_d_end, 'YYYY-MM-DD') chld_d_end from child chld, picture ptct where CHLD.id = PTCT.chld_id and nvl(chld_d_end, sysdate) >= to_date('2014-01-01','YYYY-MM-DD') and chld_c_veri in ('HC','DR') and nvl(ptct_term, ptct_end) >= to_date('2014-01-01','YYYY-MM-DD')