我突然发现我在Oracle 11g R2上使用的Oracle JDBC驱动程序认为美国的夏令时在今年3月13日凌晨2:59:59之后开始。实际上,它是在凌晨1:59:59之后开始的。我做了一些额外的测试,发现该驱动程序的错误行为并不取决于它是否与Oracle 11g R2或Oracle 10g对话。此外,该驱动程序的所有可用先前版本都可以正确地更改夏令时。
这是一个已知的错误吗?有没有可用的修复程序?
答案 0 :(得分:4)
我们的DBA进行了研究,发现这是一个已知错误,并且可以使用补丁。感谢所有关心此事的人,并为你的大脑寻找答案!
编辑2013年9月25日:在撰写本文时(2年多前),付费Oracle客户可以使用Oracle JDBC驱动程序11.2.0.2.0的补丁。我没有亲自测试过,但我相信在Oracle JDBC驱动程序11.2.0.4的当前版本中可以解决该问题,该驱动程序可从Oracle免费下载。
答案 1 :(得分:0)
是的我同意这是司机。如果您的列的类型为TIMESTAMP,那么Oracle将允许这些无效日期插入到数据库中,然后某些查询将抛出
直到DB中更新“坏”记录。昨天更新的堆栈溢出上的这个线程有完整的细节。请参阅Chris Williams的答案