gpt4 book ai didi

java - ORA-00932 : inconsistent datatypes: expected DATE got BINARY in Hibernate

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:09 26 4
gpt4 key购买 nike

我的查询是这样的:

where (:startDate is null or :endDate is null or DDATE between :startDate AND :endDate)
AND (:startDate is null or (:endDate is not null or DDATE between :startDate AND :date))

我从 ajax 日期选择器获取 startDateendDatedate 是系统日期,我是这样得到的:

Date utiDate = new Date();

当我执行查询时,出现错误:

java.sql.SQLException: ORA-00932: inconsistent datatypes: expected DATE got BINARY

最佳答案

试图找到正确的答案,我发现了一个有趣的帖子 here .

如果 :endDate 为 null,您无法确定条件 DDATE between :startDate AND :endDate 不会被评估。如果它被评估,Oracle 将尝试将空值转换为日期,因此它会给您一个错误。

尝试测试删除 DDATE between :startDate AND :endDate 部分的查询:你不应该再有错误了。然后,您必须修改查询以确保在 :enddate 为 null 时不会计算 between 运算符。在 this post ,他们建议在 WHERE 子句中使用 CASE 语句。也许它可以解决您的问题。

关于短路评估和Oracle数据库,我找到了that question这可以帮助您理解问题。

关于java - ORA-00932 : inconsistent datatypes: expected DATE got BINARY in Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16582611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com