java.sql.SQLException:操作不能与Oracle样式的批处理混合使用

时间:2013-07-23 13:02:42

标签: sql jdbc oracle11g batching

我不太确定混合使用JDBC和Oracle批处理......我读到我不能将它混合在preparedStatment的一个实例上...因为:Oracle Update Batching Models - Using both batching models in same application

但我也发现一些事情,即即使在一个应用程序中它也不能混合...... http://docs.oracle.com/cd/B10500_01/java.920/a96654/oraperf.htm

所以我知道我不确定问题出在哪里......

我在每个函数调用中创建一个新的准备好的语句:

public void functionCall(int Id)

    PreparedStatement insStm = null;
    String featureName = "";
    String featureTypeName = "";

        String sql = "BEGIN insert into " + TABLE_FEATURE_INSET + " values (?, ?, ?, ?); EXCEPTION WHEN others THEN IF SQLCODE != -1 THEN RAISE; END IF; END;";
        insStm = getConnection().prepareStatement(sql);

        for(xxx)
            for (yyy) {
                for (zzz) {
                    insStm.setObject(1, TypeName);
                    insStm.setObject(2, tableName);
                    insStm.setObject(3, sourceId);
                    insStm.setObject(4, Id);
                    insStm.addBatch();
                }
            }

            // per feature
            insStm.executeBatch();
        }
        statement .close();
}

然后我有时会收到错误......:

  

引起:java.sql.SQLException:不允许操作:操作   不能与Oracle风格的批处理混合使用

prepareStatment可能是来自同一连接的问题?我真的不确定这个。

有人能帮助我吗?感谢

修改 该错误是由此调用引起的:insStm.addBatch();

0 个答案:

没有答案