我使用相同的代码在同一个数据库上运行相同的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应用程序上运行?
谢谢,
肯尼
答案 0 :(得分:2)
代码对我来说似乎不对。 TO_DATE
函数的目标是将给定格式的字符串转换为日期。并且您不是将字符串作为参数传递给此函数,而是传递java.util.Date
对象。
您应该删除TO_DATE
函数的使用,将java.util.Date
转换为java.sql.Timestamp
对象,并使用setTimestamp
将参数传递给预准备语句。< / p>
它在你的unix盒子上工作的事实看起来像是一个意外。