昨天用JPA写报表的SQL,在执行的时候一直报 “数据类型不一致: 应为 NUMBER, 但却获得 BINARY” 的错误,一开始我还不知道Oracle的数据类型和Java对应类型有所不同,逐行检查我的SQL,查看是哪段类型出了问题。
  后面检查发现是下面这行语句出现了问题。

AND (ro.is_included_commission = ?35 OR ?35 IS NULL)

  查了数据表中的这个is_included_commission字段类型,就是NUMBER类型,于是换了Integer类型,但是依旧报 “数据类型不一致: 应为 NUMBER, 但却获得 BINARY” 的错误,然后还特地去网上搜索了Oracle数据库类型对应java类型。
引用地址:http://blog.csdn.net/perny/article/details/7971003

SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展的Java类型
CHAR java.sql.Types.CHAR java.lang.String oracle.sql.CHAR
VARCHAR2 java.sql.Types.VARCHAR java.lang.String oracle.sql.CHAR
LONG java.sql.Types.LONGVARCHAR java.lang.String oracle.sql.CHAR
NUMBER java.sql.Types.NUMERIC java.math.BigDecimal oracle.sql.NUMBER
NUMBER java.sql.Types.DECIMAL java.math.BigDecimal oracle.sql.NUMBER
NUMBER java.sql.Types.BIT boolean oracle.sql.NUMBER
NUMBER java.sql.Types.TINYINT byte oracle.sql.NUMBER
NUMBER java.sql.Types.SMALLINT short oracle.sql.NUMBER
NUMBER java.sql.Types.INTEGER int oracle.sql.NUMBER
NUMBER java.sql.Types.BIGINT long oracle.sql.NUMBER
NUMBER java.sql.Types.REAL float oracle.sql.NUMBER
NUMBER java.sql.Types.FLOAT double oracle.sql.NUMBER
NUMBER java.sql.Types.DOUBLE double oracle.sql.NUMBER
RAW java.sql.Types.BINARY byte[] oracle.sql.RAW
RAW java.sql.Types.VARBINARY byte[] oracle.sql.RAW
LONGRAW java.sql.Types.LONGVARBINARY byte[] oracle.sql.RAW
DATE java.sql.Types.DATE java.sql.Date oracle.sql.DATE
DATE java.sql.Types.TIME java.sql.Time oracle.sql.DATE
TIMESTAMP java.sql.Types.TIMESTAMP java.sql.Timestamp oracle.sql.TIMESTAMP

  因为NUMBER类型由于字段长度对应的Java类型有所不同,于是我把BigDecimal、Boolean、Byte、Short都给试了一遍,但还是报那个错。后面我才意识到是因为我值传的是null,JPA中不能参null值给number类型。
  于是我采取了一个取巧的方法,如果是要传null值,就在dao层把参数赋为-1,然后修改SQL为如下语句。

AND (ro.is_included_commission = ?35 OR ?35 = '-1')

“数据类型不一致: 应为 NUMBER, 但却获得 BINARY”解决方法相关推荐

  1. 编译错误 错误:PL/SQL: ORA-00932: 数据类型不一致: 应为 DATE, 但却获得 NUMBER 行

    文章目录 1. 现象 2. 分析 3. 解决方案 通过存储过程将临时B表中的数据同步到轨迹表中 1. 现象 PROCEDURE LABS.ASSET_LOANP 编译错误错误:PL/SQL: ORA- ...

  2. oracle创建视图类型为日期,oracle创建视图包含clob字段,报错:数据类型不一致:应为-,但却获得CLOB...

    在oracle中创建视图的时候,语句中包含有clob类型的字段.视图创建语句大概如下: CREATE OR REPLACE FORCE VIEW "T_PROJECTS" (&qu ...

  3. Nginx报错:nginx: [error] invalid PID number ““ in “/run/nginx.pid“ 解决方法

    服务器重启之后,执行 nginx -t 是OK的,然而在执行 nginx -s reload 的时候报错 nginx: [error] invalid PID number "" ...

  4. [LVM] Linux resize2fs: Bad magic number in super-block错误的解决方法

    描述:当我LVM扩容逻辑卷区后,检查硬盘(lv)完整性和重置硬盘(lv)容量报错 错误截图: [root@localhost ~]# lvextend -L 246G /dev/cl/home Siz ...

  5. 没有CLOB类型却报ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB

    这个主要是在Oracle查询中用到了wm_concat()函数{进行对同一列取到多行数据合并到一行并用英文逗号","分开} 刚开始猜测在不同版本中导致这条数据返回值不一样产生的问题 ...

  6. tensorflow_yolov3 神经网络训练时train_loss和test_loss出现NaN(not a number)的原因和解决方法

    训练到一定阶段,就全是Nan了 可能是代码问题,参考解决办法: 看tensorflow_yolov3作者回复说: 但我这貌似都训练到头不动了: 另外,再引用一篇写得比较好的文章: 参考文章1:训练神经 ...

  7. 【Vegas原创】exp时,ORA-00932: 数据类型不一致解决方法

    现象: EXP-00056: 遇到 ORACLE 错误 932 ORA-00932: 数据类型不一致: 应为 BLOB, CLOB, 但却获得 CHAR EXP-00000: 导出终止失败 解决方法: ...

  8. Oracle关联查询-数据类型不一致问题 ORA-01722: 无效数字

    一.存在表A和表B,都包含字段user_no,但数据类型不一致,如下: create table A ( user_id varchar2(20), user_no number(12,0), xxx ...

  9. MySQL数据类型不一致_数据类型不一致导致的SQL不走索引

    前几天,同事发来一条SQL,说是更新操作的时候执行的很慢,我看了下,数据量也不是很大.再查看执行计划,发现是执行路径错误导致 前几天,,同事发来一条SQL,说是更新操作的时候执行的很慢,我看了下,数据 ...

  10. ODI Studio(问题7)ORA-00932:数据类型不一致--BLOB

    问题:数据类型不一致:应为-,但却获得BLOB. 措施: 1.在流中,设置源表的加载模块为:LKM SQL to SQL BLOB(JYTHON). 2.设置目标表的集成模块为:IKM SQL Inc ...

最新文章

  1. 网络工程师_域名知识点
  2. 深度学习已入末路,谁能引领下一代AI?
  3. 二维非稳态导热微分方程_室内湿度影响验证:非真空型稳态法导热仪的正确使用方式...
  4. Linux加法简单程序,Android应用程序的开发目录——简单的加法计算示例
  5. netbsd配置gnome桌面
  6. 【registry】 javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
  7. AngularJS 学习笔记 (六) 基本概念和用法 之 Service与Provider
  8. Mysql 存储类型范围
  9. 办公软件 -- Office 365免费下载安装
  10. LaTex 插入超链接
  11. Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
  12. linux 配额不起作用,Linux 配额
  13. 学习编程悟出8个字《精辟》!
  14. 模板匹配及其源代码---Edge Based Template Matching
  15. can总线rollingcounter_CAN总线笔记
  16. Windows 下载WebStorm
  17. 每日一题-75(向公司CEO汇报工作的所有人)
  18. 加强版Apktool堪称逆向神器
  19. 一切系统都是分布式的
  20. 按音量键和按Fn+音量键,笔记本电脑均没反应的解决办法

热门文章

  1. apr_thread使用内存之谜
  2. 简述JAVAoop思想
  3. pxhere - 世界知名的免费摄影图库,可以免费商用
  4. 虎牙直播Js说书人弹幕
  5. java旋转图片后边上变黑_图像旋转后出现黑点 - (二) - 填坑
  6. Golang获取时间戳并增加一天
  7. 冯诺依曼计算机模型中存储器,在冯诺依曼计算机模型中存储器是指什么单元?...
  8. 如何在CAD图纸中添加文字
  9. laravel的elixir和gulp用来对前端施工
  10. Arango db 快速入门