java - 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
解决方案
请查阅COALESCE的文档
用法是
合并 (expr1, expr2, ..., exprn)
并且不像您的示例那样嵌套
COALESCE (expr1, COALESCE (expr2,expr3))
检查绑定参数和引用的数据库列的数据类型。似乎有些不是VARCHAR
(可能是数字),这与'a'
如果要处理COALESCE
as 字符串中的所有表达式(我从 teh construction 中推断出来COALESCE(t.cId,'a')
),则必须使用TO_CHAR
.
基本上你需要,COALESCE
相同数据类型中的所有表达式或至少能够转换为使用第一个参数定义的数据类型。
推荐阅读
- c++ - CLion 在 macOS 上找不到 Eigen3
- mysql - 如何从两个表中删除
- c# - Unity Touch Count 忽略 Ui 输入
- java - 当项目是 .jar 或在 IDE 中时,如何动态访问 src/main/resources 中的文件
- javascript - 为什么车把脚本在body标签之外不起作用
- powershell - PowerShell 从脚本运行脚本:如果调用失败,则调用者失败
- java - Spring Cloud Gateway第二条路径不起作用
- visual-studio-code - 如何在 VSCode 中制作仅由修饰符组成的键绑定?
- excel - 具有两个标准的 MATCH 公式作为工作表函数 (VBA)
- html - CSS背景图像偏移+包含不占用整个宽度