Session session = HibernateUtils.getSession();
String sql = "{call transition (?,?,?,?,?,?,?,?,?,?)}";
CallableStatement call = null;
......
call.setBigDecimal("p_balance", accinfoctrol.getBalance());// 余额
call.setBigDecimal("p_scale", accinfoctrol.getInitproportion());// 初始保证金比例
call.setInt("p_accountid", accinfoctrol.getId().getAccountid());// 帐户序号
call.setInt("p_chfg", accinfoctrol.getId().getChflag());// 钞汇标志
call.setString("p_currency", accinfoctrol.getId().getMargcurrency());// 保证金币种
call.setString("p_OrderId", rskinform.getOrderid());// 订单号
call.setInt("p_changeFlag", rskinform.getChangeflag());// 变动标志
call.setInt("p_ModiFlag", rskinform.getModiflag());// 更改标志
call.setInt("p_transactFlag", rskinform.getTransactflag());// 处理标志
call.registerOutParameter("publicreturn", -1);为什么这样写,数据都已经影响了数据库,而会抛出异常呢?
java.sql.SQLException: 不允许的操作: Ordinal binding and Named binding cannot be combined!
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:120)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:118)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:224)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:296)
at oracle.jdbc.driver.OracleCallableStatement.getInt(OracleCallableStatement.java:2723)
at oracle.jdbc.driver.OracleCallableStatementWrapper.getInt(OracleCallableStatementWrapper.java:2388)
at com.hrfxb.persistence.service.DaoDataBase.transition(DaoDataBase.java:144)
at com.hrfxb.persistence.test.TransitionTest.testTransition(TransitionTest.java:38)
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 junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)