java调用oracle过程,JAVA调用ORACLE存储过程报错
當前位置:我的異常網? Java Web開發???JAVA調用ORACLE存儲過程報錯
JAVA調用ORACLE存儲過程報錯
www.myexceptions.net??網友分享于:2015-07-12??瀏覽:0次
JAVA調用ORACLE存儲過程出錯
public?void?unpack(String?pc,String?xqdm)throws?SQLException?{
Session?session?=??getHibernateTemplate().getSessionFactory().getCurrentSession();
Connection?conn?=?session.connection();
//CallableStatement?cstmt?=?null;
try?{
CallableStatement?cstmt?=?conn.prepareCall("{Call?PKG_I_DFXM.PRC_I_NBBPCF(?,?,?,?,?)");
cstmt.setString(1,?pc);
cstmt.setString(2,?xqdm);
cstmt.setString(3,?"n");
cstmt.registerOutParameter(4,?OracleTypes.NUMBER);
cstmt.registerOutParameter(5,?OracleTypes.VARCHAR);
cstmt.execute();
//int?xcode?=?cstmt.getInt(4);
//String?errormsg?=?cstmt.getString(5);
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
錯誤代碼
java.sql.SQLException:?An?SQLException?was?provoked?by?the?following?failure:?java.lang.StringIndexOutOfBoundsException:?String?index?out?of?range:?40
at?com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at?com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
at?com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:62)
at?com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(NewPooledConnection.java:432)
at?com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3058)
at?com.qymgr.report.dao.BPUnPackDao.unpack(BPUnPackDao.java:33)
at?com.qymgr.report.manager.impl.BPUnpackMngImpl.unPack(BPUnpackMngImpl.java:18)
at?sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)
at?sun.reflect.NativeMethodAccessorImpl.invoke(Unknown?Source)
at?sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown?Source)
at?java.lang.reflect.Method.invoke(Unknown?Source)
at?org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at?org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at?org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at?org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at?org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at?org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at?com.sun.proxy.$Proxy18.unPack(Unknown?Source)
at?com.qymgr.report.action.BPUnpackAct.unPack(BPUnpackAct.java:87)
at?sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)
at?sun.reflect.NativeMethodAccessorImpl.invoke(Unknown?Source)
at?sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown?Source)
at?java.lang.reflect.Method.invoke(Unknown?Source)
at?org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)
at?org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at?org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at?org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:629)
at?org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:590)
at?org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at?org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at?org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
at?org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:874)
at?org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:790)
at?javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at?javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at?org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at?org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at?org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at?org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at?org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at?org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at?org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at?org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at?org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at?org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at?org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at?org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at?org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at?org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at?org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at?org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at?org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at?org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at?org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at?org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
at?java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown?Source)
at?java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown?Source)
at?java.lang.Thread.run(Unknown?Source)
Caused?by:?java.lang.StringIndexOutOfBoundsException:?String?index?out?of?range:?40
at?java.lang.String.charAt(Unknown?Source)
at?oracle.jdbc.driver.OracleSql.handleODBC(OracleSql.java:1113)
at?oracle.jdbc.driver.OracleSql.parse(OracleSql.java:1031)
at?oracle.jdbc.driver.OracleSql.getSql(OracleSql.java:312)
at?oracle.jdbc.driver.OracleSql.getSqlBytes(OracleSql.java:591)
at?oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:204)
at?oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:969)
at?oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
at?oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)
at?oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)
at?oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4400)
at?com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3044)
...?53?more
12:08:19.390?ERROR?com.qymgr.core.exception.ExceptionHandler?-?null
java.lang.NullPointerException:?null
at?oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:876)?~[ojdbc14.jar:Oracle?JDBC?Driver?version?-?"10.2.0.4.0"]
at?oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:975)?~[ojdbc14.jar:Oracle?JDBC?Driver?version?-?"10.2.0.4.0"]
at?oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)?~[ojdbc14.jar:Oracle?JDBC?Driver?version?-?"10.2.0.4.0"]
at?oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370)?~[ojdbc14.jar:Oracle?JDBC?Driver?version?-?"10.2.0.4.0"]
at?oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3476)?~[ojdbc14.jar:Oracle?JDBC?Driver?version?-?"10.2.0.4.0"]
at?oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4400)?~[ojdbc14.jar:Oracle?JDBC?Driver?version?-?"10.2.0.4.0"]
at?com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3044)?~[c3p0-0.9.1.2.jar:0.9.1.2]
at?com.qymgr.report.dao.BPUnPackDao.unpack(BPUnPackDao.java:33)?~[BPUnPackDao.class:na]
at?com.qymgr.report.manager.impl.BPUnpackMngImpl.unPack(BPUnpackMngImpl.java:18)?~[BPUnpackMngImpl.class:na]
at?sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)?~[na:1.7.0_75]
at?sun.reflect.NativeMethodAccessorImpl.invoke(Unknown?Source)?~[na:1.7.0_75]
at?sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown?Source)?~[na:1.7.0_75]
at?java.lang.reflect.Method.invoke(Unknown?Source)?~[na:1.7.0_75]
at?org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)?~[org.springframework.aop-3.1.0.RC1.jar:3.1.0.RC1]
at?org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)?~[org.springframework.aop-3.1.0.RC1.jar:3.1.0.RC1]
at?org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)?~[org.springframework.aop-3.1.0.RC1.jar:3.1.0.RC1]
at?org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)?~[org.springframework.transaction-3.1.0.RC1.jar:3.1.0.RC1]
at?org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)?~[org.springframework.aop-3.1.0.RC1.jar:3.1.0.RC1]
at?org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)?~[org.springframework.aop-3.1.0.RC1.jar:3.1.0.RC1]
at?com.sun.proxy.$Proxy18.unPack(Unknown?Source)?~[na:na]
at?com.qymgr.report.action.BPUnpackAct.unPack(BPUnpackAct.java:87)?~[BPUnpackAct.class:na]
at?sun.reflect.NativeMethodAccessorImpl.invoke0(Native?Method)?~[na:1.7.0_75]
at?sun.reflect.NativeMethodAccessorImpl.invoke(Unknown?Source)?~[na:1.7.0_75]
at?sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown?Source)?~[na:1.7.0_75]
at?java.lang.reflect.Method.invoke(Unknown?Source)?~[na:1.7.0_75]
------解決思路----------------------
傳參數是不是應該從0開始,我也沒用過存儲過程
文章評論
總結
以上是生活随笔為你收集整理的java调用oracle过程,JAVA调用ORACLE存储过程报错的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【每日一练】订单提交页面
- 下一篇: html css 奥运五环,用css3实