一个由于低版本JDBC驱动导致的错误。
告警日志中错误信息为:
Fri Aug 12 19:00:03 2011 Errors IN file /opt/app/oracle/admin/orcl/udump/orcl2_ora_28464.trc: ORA-07445: exception encountered: core dump [lnxadd()+471] [SIGSEGV] [Address NOT mapped TO object] [0x000000000] [] [] Fri Aug 12 19:00:04 2011 Trace dumping IS performing id=[cdmp_20110812190004] |
根据MOS文档setDouble On INSERT Corrupts Data In NUMBER Column Using Oracle10g JDBC Driver [ID 313373.1],导致问题的原因是使用了低版本的JDBC驱动插入NUMBER类型的数值。
当使用JDBC驱动版本为10.1.0.2到10.1.0.4时,使用setDouble设置绑定变量的值时会引发这个错误。解决方法时使用10.1.0.5以上版本的JDBC驱动,或者在SQL语句中使用TO_NUMBER函数,而绑定变量使用setString通过字符串进行赋值。