spring jdbctemplate:不同应用程序服务器上的不同行为(日期问题)
我使用相同的代码但使用 2 个不同的应用程序服务器在同一个数据库上运行相同的选择查询。
查询:查找日记中某一天的条目。
1)现有的遗留应用程序服务器(BroadVision在unix上运行): 从期刊中选择标题和内容,其中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: a non - 在需要数字的地方发现了数字字符
有什么想法如何让它在 JBoss 应用程序上运行吗?
谢谢,
肯尼
I am running the same select query on the same database using the same code but using 2 different app servers.
Query: Find a certian day's entries in a journal.
1) Existing legacy app server (BroadVision running on unix):
Select title, content from journal where entry_date = TO_DATE(?, 'DD/MM/YY HH24:MI:SS');
DEBUG:core.StatementCreatorUtils:Setting SQL statement parameter value: column index 1, parameter value [Thu Sep 29 14:32:58 IST 2011], value class [java.util.Date], SQL type unknown
This works fine
2) JBoss app server (Running on windows):
Select title, content from journal where entry_date = TO_DATE(?, 'DD/MM/YY HH24:MI:SS');
DEBUG:core.StatementCreatorUtils:Setting SQL statement parameter value: column index 1, parameter value [Thu Sep 29 14:41:26 IST 2011], value class [java.util.Date], SQL type unknown
ORA-01858: a non-numeric character was found where a numeric was expected
Any ideas how to get this running on the JBoss app?
Thanks,
Kenny
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该代码对我来说似乎不正确。
TO_DATE
函数的目标是将给定格式的字符串转换为日期。并且您没有将字符串作为参数传递给此函数,而是传递 java.util.Date 对象。您应该删除
TO_DATE
函数的使用,将java.util.Date
转换为java.sql.Timestamp
对象,并使用 < code>setTimestamp 将参数传递给准备好的语句。事实上,它在你的 UNIX 机器上正常工作对我来说似乎是一个意外。
The code seems incorrect to me. The
TO_DATE
function's goal is to transform a string in a given format into a date. And you're not passing a string as argument to this function, but ajava.util.Date
object.You should remove the use of the
TO_DATE
function, transform yourjava.util.Date
into ajava.sql.Timestamp
object, and usesetTimestamp
to pass the argument to your prepared statement.The fact that it worked as is on your unix box looks like an accident to me.