我目前正在将一些数据从Oracle迁移到Postgres.我在行数之间做了一些基本的比较,我在其中一个查询中发现了一个问题.首先,所有数据都已成功从Oracle迁移到Postgres,其中所有表的行数都匹配.在那之后,我生成了一些在一些SELECT语句上生成的json文件,这就是我发现使用Oracle生成的json文件与使用postgres生成的json文件之间的差异的地方.
下面是一个postgres查询,它生成一个json文件
SELECT * FROM some_table WHERE recurring_end_dt >= CURRENT_DATE
下面是来自Oracle的查询
SELECT * FROM some_table WHERE recurring_end_dt >= sysdate
如您所知,两个数据库在该表中的行数是相同的.这两个数据库列中的NULL计数也是相同的.
Postgres的行数为14700,而Oracle的行数为14400.因为postgres中有300个额外的行,所以我试图了解重复出现的end_date对于这300行的值是什么.我发现它们与Oracle中的值完全匹配.例如,Postgres中的值是2023-12-07,而Oracle中同一主键的值是07-DEC-23.然而,Oracle中的行不会显示为查询结果的一部分,即使它们应该显示.那么Oracle或Postgres是否存在问题,因为从技术上讲,Postgres返回了正确的查询