oracle11g两个版本中sql查询行为的差异

oracle11g两个版本中sql查询行为的差异,oracle11g,Oracle11g,我们有两个数据库,一个版本是11.2.0.1.0,另一个版本是11.2.0.3.0 质疑 SELECT * from chn_chr where Chn_CRTN_DT < '08-Aug-2012 02.20.30.000000 PM' 选择* 来自中国 其中Chn_CRTN_DT

我们有两个数据库,一个版本是11.2.0.1.0,另一个版本是11.2.0.3.0

质疑

SELECT * 
  from chn_chr 
 where Chn_CRTN_DT < '08-Aug-2012 02.20.30.000000 PM'
选择*
来自中国
其中Chn_CRTN_DT<'08-Aug-2012 02.20.30.000000 PM'
不适用于11.2.0.3.0版,但相同的查询适用于11.2.0.1.0版

我已经验证了所有NLS参数(会话、实例、数据库)以及这两个版本的相同参数


这是发布的问题还是我需要检查的其他问题?

什么是“不工作”?你有错误吗?如果是,错误是什么?您是否有理由需要依赖隐式数据类型转换,而不是使用显式的
到_DATE
到_TIMESTAMP
?当我从sql developer运行此查询时,我得到了ORA-01830:日期格式图片在转换整个输入字符串01830之前结束。00000-“日期格式图片在转换整个输入字符串之前结束”,但是我尝试从Unix box运行的同一个查询得到了预期的输出。然后,您需要检查sql developer和Unix box上的数据库会话之间nls设置的差异。是否有原因需要依赖隐式数据类型转换,而不是使用显式的
到\u DATE
或<代码> tothe TimePays<代码>?是的,SQL开发人员有自己的NLS设置,您必须考虑。正如Justin所暗示的,依赖隐式数据转换不是一个好主意。