0

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

查询:在日记中查找某一天的条目。

1) 现有的旧版应用服务器(在 unix 上运行的 BroadVision):选择标题、内容来自日志 where 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应用服务器(在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 应用程序上运行?

谢谢,

肯尼

4

1 回答 1

2

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

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

它在您的 unix 机器上正常工作的事实对我来说似乎是个意外。

于 2011-09-28T14:44:16.690 回答