用oracle预处理语句执行批处理

mic*_*nko 1 java jdbc oracle11g

我尝试使用以下代码添加批量预处理语句:

Connection c = ...
PreparedStatement ps = c.prepareStatement(query1);
ps.setObject(....)
...
ps.addBatch(query2); // SqlException : Unsupported feature
Run Code Online (Sandbox Code Playgroud)

是不是oracle jdbc驱动支持批处理,或者我做错了什么?

我正在使用oracle瘦驱动程序.来自MANIFEST.MF的版本Implementation-Version: 11.2.0.1.0.

java.sql.SQLException: Unsupported feature
        at oracle.jdbc.driver.OraclePreparedStatement.addBatch(OraclePreparedStatement.java:9803)
        at oracle.jdbc.driver.OracleStatementWrapper.addBatch(OracleStatementWrapper.java:285)
        at org.jboss.resource.adapter.jdbc.WrappedStatement.addBatch(WrappedStatement.java:731)
        at <application classes>
Run Code Online (Sandbox Code Playgroud)

Buh*_*ndi 6

您正在创建一个PreparedStatement使用query1并添加query2到它不属于的已准备好的状态.

如果您正在使用PreparedStatement,我建议使用该PreparedStatement.addBatch()方法.

PreparedStatement ps = c.prepareStatement(query1);
ps.setObject(....);
ps.addBatch(); //Voila
Run Code Online (Sandbox Code Playgroud)