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

发布于 2024-12-07 07:12:03 字数 655 浏览 0 评论 0原文

我使用相同的代码但使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾城花音 2024-12-14 07:12:03

该代码对我来说似乎不正确。 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 a java.util.Date object.

You should remove the use of the TO_DATE function, transform your java.util.Date into a java.sql.Timestamp object, and use setTimestamp 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文