spring jdbctemplate:不同应用服务器上的不同行为(日期问题)

时间:2011-09-28 14:33:50

标签: spring jdbctemplate

我使用相同的代码在同一个数据库上运行相同的select查询,但使用了2个不同的应用服务器。

查询:在期刊中查找证书日的条目。

1)现有的旧版应用服务器(在unix上运行的BroadVision):     选择标题,日记中的内容,其中entry_date = TO_DATE(?,'DD / MM / YY HH24:MI:SS');

DEBUG:core.StatementCreatorUtils:设置SQL语句参数值:列索引1,参数值[Thu Sep 29 14:32:58 IST 2011],值类[java.util.Date],SQL类型未知

这很好用

2)JBoss app服务器(在Windows上运行):     选择标题,日记中的内容,其中entry_date = TO_DATE(?,'DD / MM / YY HH24:MI:SS');

DEBUG:core.StatementCreatorUtils:设置SQL语句参数值:列索引1,参数值[Thu Sep 29 14:41:26 IST 2011],值类[java.util.Date],SQL类型未知

ORA-01858:找到了一个非数字字符,其中数字是预期的

任何想法如何在JBoss应用程序上运行?

谢谢,

肯尼

1 个答案:

答案 0 :(得分:2)

代码对我来说似乎不对。 TO_DATE函数的目标是将给定格式的字符串转换为日期。并且您不是将字符串作为参数传递给此函数,而是传递java.util.Date对象。

您应该删除TO_DATE函数的使用,将java.util.Date转换为java.sql.Timestamp对象,并使用setTimestamp将参数传递给预准备语句。< / p>

它在你的unix盒子上工作的事实看起来像是一个意外。