通过 SQL Server 代理运行 SSIS etl 包并使用时间/日期(预期日期为当前日期减 1)对另一台服务器中的 Oracle 数据库进行过滤时,查询返回早于 5 个月的日期,而直接在 Oracle 上执行的相同查询运行良好
以下是查询
select
to_char(id) id,
to_char(packno) packno,
to_char(TIME, 'DD-MM-YYYY HH:MI:SS')TIME,
to_char(TYPE) TYPE,
to_char(AMOUNTORIG)AMOUNTORIG,
to_char(AUTHFIID)AUTHFIID,
to_char(ORIGUNIT)ORIGUNIT
from bab.tla
where packno between (to_nchar(sysdate-2, 'YYMMDD')) || '001' and (to_nchar(sysdate-0, 'YYMMDD')) || '017'
and time
between
to_date(to_nchar(trunc(sysdate-1), 'dd-mon-yyyy hh24:mi:ss'),'dd-mon-yyyy hh24:mi:ss') and
to_date(to_nchar(sysdate-1, 'dd-mon-yyyy') || ' 23:59:59','dd-mon-yyyy hh24:mi:ss')
已解决。问题是临时表意外更改为流程中的旧表。虽然正确的暂存表在工作流程开始时被截断,但包含较旧数据的错误表会添加到流程内的查询中