ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
2013-10-21 00:00
2939 查看
这个错误困扰了我一天的时间,现在写出来希望以后大家遇到这样的错误时,希望对大家有帮助。首先介绍一下使用的情景,我的项目的spring和hibernate搭建服务端对数据库进行插入的操作,由于历史原因,所操作的数据表的列过多,大概超过100个字段,所以决定利用hibernate Tools进行代码生成。生成mapping文件后,进行插入操作时就出现了这个错误:ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY;
看到这个错误第一反应当然是找google大神,结果找了几篇stackoverflow,发现出现的问题不太相似,遂放弃。没办法决定利用笨办法一个一个试了,这个数据类型错误首先让人联想到的是:将null赋给了某个number类型的字段,结果证明这样的想法很荒诞。利用hibernate进行orm时,任何number所对应的Integer、Long 等这些wrapper类型,如果被赋值为null,hibernate是有自身的机制进行操作,因此不存在这样的问题,经过实验使用也否定了这个原因。后来又看到一篇博客,说date类型赋值为null会出现这样的问题,结果试了一下貌似不会。仔细一想抛出的错误是获得了binary,能够接收到binary最为可能性的途经就是某个字节流或者序列化的类,沿着这个思路,检查了一下hbm.xml文件,发现oracle中的timestamp类型都被映射成了Serializable类型,遂觉问题之所在,看来使用自动生成真的需要小心一点,于是改动了一下*.reveng.xml
按图索骥把类型映射改为date后,问题解决。
看到这个错误第一反应当然是找google大神,结果找了几篇stackoverflow,发现出现的问题不太相似,遂放弃。没办法决定利用笨办法一个一个试了,这个数据类型错误首先让人联想到的是:将null赋给了某个number类型的字段,结果证明这样的想法很荒诞。利用hibernate进行orm时,任何number所对应的Integer、Long 等这些wrapper类型,如果被赋值为null,hibernate是有自身的机制进行操作,因此不存在这样的问题,经过实验使用也否定了这个原因。后来又看到一篇博客,说date类型赋值为null会出现这样的问题,结果试了一下貌似不会。仔细一想抛出的错误是获得了binary,能够接收到binary最为可能性的途经就是某个字节流或者序列化的类,沿着这个思路,检查了一下hbm.xml文件,发现oracle中的timestamp类型都被映射成了Serializable类型,遂觉问题之所在,看来使用自动生成真的需要小心一点,于是改动了一下*.reveng.xml
<type-mapping> <sql-type jdbc-type="OTHER" hibernate-type='date'/> </type-mapping>
按图索骥把类型映射改为date后,问题解决。
相关文章推荐
- ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
- 【ERROR】java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
- 关于错误:- ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
- ORA-00932: 数据类型不一致: 应为 CHAR, 但却获得 NUMBER
- java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 DATE, 但却获得 BINARY 解决
- 第 2 行出现错误:ORA-00932: 数据类型不一致: 应为 DATE, 但却获得 NUMBER
- DB字段顺序与类的属性顺序一致:{Oracle.DataAccess.Client.OracleException ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER
- java.sql.SQLException: ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- 数据类型不一致: 应为 NUMBER, 但却获得 BINARY
- ORA-00932 :数据类型不一致:应为-,但却获得CLOB
- ORA-00932: 数据类型不一致: 应为 BLOB, CLOB, 但却获得 CHAR
- ORA-00932 :数据类型不一致:应为-,但却获得CLOB
- ORA-00932 :数据类型不一致:应为-,但却获得CLOB
- ORA-00932: 数据类型不一致: 应为 -, 但却获得 -
- oracle clob ERROR org.hibernate.util.JDBCExceptionReporter - ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
- oracle union查询中BLOB字段出错问题,ora-00932:数据类型不一致:应为 -,但却获得BLOB
- SQL 错误 [932] [42000]: ORA-00932: 数据类型不一致: 应为 -, 但却获得 NCLOB
- Oracle中 ORA-00932: 数据类型不一致: 应为 -, 但却获得CLOB
- ORA-00932: 数据类型不一致: 应为 -, 但却获得 –