之前遇到过类似问题,都是因为表字段类型不匹配或者字段定义关键字引起的! 这里出现了ORA-01465: 无效的十六进制数字,我觉得好像是指哪个字段类型不匹配问题是吗?可找了很久也不知道是哪个字段出题了。所以在这里跪求高手帮忙 问题很急。 先谢啦!Hibernate: insert into PM_co_corporation (version, STATE, ORG_NO, CORP_OWNER, OFFICE_ADDR, FACTORY_FAX, CONN_MAN, CORP_PRINCIPAL, DEAL_TYPE_GROUP, OFFICE_TEL, OFFICE_POST, OFFICE_FAX, FACTORY_ADDR, REG_FUNDS_UNIT, FACTORY_POST, LAST_MODIFIER, CORP_OWNER_TEL, UPDATE_REASON, FACTORY_TEL, REG_FUNDS, DEAL_TYPE_SUB_GROUP, CONN_TEL, CORP_NAME, PRINCIPAL_TEL, AREA_TOTAL_LAGE, CORP_TEL, CORP_TELL, CORP_FAX, CORP_POST, CORP_OWNER_SEX, CORP_OWNER_BIRTHDAY, CORP_OWNER_SPECIALTY, CORP_OWNER_BUSINESS, CORP_OWNER_TITLE, CORP_OWNER_EDU, CORP_OWNER_IDENTIFY, PRINCIPAL_SEX, PRINCIPAL_BIRTHDAY, PRINCIPAL_SPECIALTY, PRINCIPAL_BUSINESS, PRINCIPAL_TITLE, PRINCIPAL_EDU, PRINCIPAL_IDENTIFY, ARCH_AREA, USED_AREA, TOTAL_FUNDS, ALIVE_FUNDS, FASTNESS_FUNDS, SUPERIOR_NAME, BUILD_ITEM_NAME, BUILD_ITEM_ADDRESSS, SUBJECTION_ID, REGION_CODE, STREE_CODE, ECONOMIC_TYPE, CODE) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into pm_f_helth_permit (version, STATE, PUP_LICENCE_ORG, HYGIENE_TRAINED_PASSED, HYGIENE_NO_SORT, ACTIVE_LUNG, HEALTHFULL_NUM, HEALTH_CHECK_NUM, SKIN, APPLY_DATE, PUB_REGION_ABBRE, HYGIENE_TRAINED, UPDATE_REASON_TYPE, LIVER, APPLY_ITEM, OUT_WEB_REG_NO, LEAVE_NUM, DEAL_FPERSON_NUM, LAST_MODIFIER, PERMIT_ITEM, HYGIENE_NO_YEAR, DEAL_MPERSON_NUM, HYGIENE_NO, UPDATE_REASON, TYPHOID, LIMIT_FROM, LIMIT_TO, OUT_IN_WEB, REG_DATE, PERMIT_DATE, CORP_BIZ_REL_CODE, SEAT_NUM, REMARK, CORP_CODE, UPDATE_FROM, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into pm_f_permit_flow (version, STATE, CURRENT_DEPT, CURRENT_STEP, CURRENT_USERID, APPLY_NO, SIGNATURE, FLOW_ID, PERMIT_ID, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
- SQL Error: 1465, SQLState: 72000
- ORA-01465: 无效的十六进制数字- SQL Error: 1465, SQLState: 72000
- ORA-01465: 无效的十六进制数字- Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:91)
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2048)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2427)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:353)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.xmgrid.util.HiFilter.doFilter(HiFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.xmgrid.util.Encode.doFilter(Encode.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.BatchUpdateException: ORA-01465: 无效的十六进制数字 at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10698)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
... 32 more

解决方案 »

  1.   

    通过同事的帮忙,问题可算是找到根源了。 原来是我把mysql的数据库转换到oracle中时,原表中有字段的类型是TEXT转换到oracle中变BLOB类型,而blob用于存储二进制类型的数据,所以才会报上面那异常。只要把字段类型为blob改成clob类型,问题就解决了!