首页 > 解决方案 > ORA-01465: 在合并中使用休眠 jpa 和 oracle 时出现无效的十六进制数或数据不匹配错误

问题描述

在 java spring boot 中,当我使用 coalesce 函数进行带有 oracle 后端的搜索查询时,空值处理不正确。使用 jpql 它要么给我 RAW-- ORA-01465: invalid hex number or data mismatch error, like expected binary got integer

标签: javaoraclehibernatecoalesce

解决方案


请查阅COALESCE的文档

用法是

合并 (expr1, expr2, ..., exprn)

并且不像您的示例那样嵌套

COALESCE (expr1, COALESCE (expr2,expr3))

检查绑定参数和引用的数据库列的数据类型。似乎有些不是VARCHAR(可能是数字),这与'a'

如果要处理COALESCEas 字符串中的所有表达式(我从 teh construction 中推断出来COALESCE(t.cId,'a')),则必须使用TO_CHAR.

基本上你需要,COALESCE相同数据类型中的所有表达式或至少能够转换为使用第一个参数定义的数据类型。


推荐阅读