最近在上线系统运行的过程中,发现当应用程序使用heibernate3.0 往oracle10g插入日期“1987-04-12”时,存放在数据库中的值为“1987-04-11”,插入其他时间都没问题。
在我自己机器上部署的系统没有出现这个问题。希望高手帮忙,或者共同寻求一个解决方案。

解决方案 »

  1.   

    select s.sql_text,
           s.sql_id,
           s.first_load_time,
           s.address,
           s.hash_value,
           s.child_address,
           s.bind_data,
           b.name,
           b.position,
           b.datatype_string,
           b.value_string
      from v$sql s,v$sql_bind_capture b
     where sql_text like '%you sql%' and sql_text not like '%v$sql%'
     and s.address = b.address
     and s.hash_value = b.hash_value
     and s.child_address = b.child_address;先看看传入oracle的绑定变量是多少,根据结果再分析是oracle的问题还是java的问题
      

  2.   

    不会吧,楼主你使用10046 level 12来跟踪一下你的这个会话,关于10046 ,网上说明非常多.
      

  3.   

    往oracle10g插入日期“1987-04-12”
    ======================================
    确定插入的正确吗?是不是时区设置的问题?
      

  4.   


    是不是java段的问题,oracle这端肯定不会有这样的问题的。试试1楼和3楼的方法,看看是不是java传到oracle的时候就错了。