程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORA-01461:僅能綁定要插入LONG列的LONG值

ORA-01461:僅能綁定要插入LONG列的LONG值

編輯:Oracle教程

   使用Hibernate保存數據到oracle數據庫時出現如下錯誤:
?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 19:52:35,156  WARN JDBCExceptionReporter:100 - SQL Error: 1461, SQLState: 72000 19:52:35,156 ERROR JDBCExceptionReporter:101 - ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值   19:52:35,156  WARN JDBCExceptionReporter:100 - SQL Error: 1461, SQLState: 72000 19:52:35,156 ERROR JDBCExceptionReporter:101 - ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值   19:52:35,156 ERROR AbstractFlushingEventListener:324 - Could not synchronize database state with session org.hibernate.QueryTimeoutException: Could not execute JDBC batch update  at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:124)  at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)  at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)  at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)  at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:178)  at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)  at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)  at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)  at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)  at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)  at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:6 56)  at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformT ra nsactionManager.java:754)  at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransact ionManager.java:723)  at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(Transa cti onAspectSupport.java:393)  at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)  at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)  at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)  at $Proxy45.queryObjectOut(Unknown Source)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  at java.lang.reflect.Method.invoke(Method.java:597)  at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:180)  at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)  at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:178)  at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:68)  at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)  at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)  at java.util.concurrent.FutureTask.run(FutureTask.java:138)  at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)  at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107)  at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)  at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)  at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:239)  at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248)  at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222)  at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153)  at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:167)  at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:286)  at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:206)  at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)  at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:262)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)  at java.lang.Thread.run(Thread.java:662) Caused by: java.sql.BatchUpdateException: ORA-01461: 僅能綁定要插入 LONG 列的 LONG 值    at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)  at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)  at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)  at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)  at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)  ... 55 more

  原因:某一個字段本為varchar2(1024),但是實際要插入的值超過varchar2允許的最大長度4000時,oracle自動將該字段值轉化為Long類型,然後提示插入操作失敗。

  解決:1、是不是真的要插入超過定義長度的值?否則對長度做判斷,截取等。

  2、若是,則將字段采用clob、blob,或者使用文件代替,字段保存文件地址即可。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved