2014-02-06 2 views
3

мне нужно, чтобы получить результирующий набор из исполняемого пакета:Как получить ResultSet из executeBatch?

String [] queries = {"create volatile table testTable as (select * from orders) with data;", 
         "select top 10 * from testTable;" , 
         "drop table testTable" }; 
    for (String query : queries) { 
     statement.addBatch(query); 
    } 
    statement.executeBatch(); 

Ones я выполнить партию, как я могу получить результирующий набор из запроса на выборку?

+0

Возможный дубликат http://stackoverflow.com/questions/21118698/retrieve-resultset-using-callablestatement-after-executebatch –

ответ

4

Одним словом, вы не должны. Должен использоваться простой множественный execute().

Как и в случае с javadoc of executeBatch(), он не должен поддерживать API getResultSet()/getMoreResults().

Кроме того, в JDBC™ 4.0 Specification # 14.1.2

только DDL и DML-команды, которые возвращают простой подсчет обновлений может быть выполнен как часть пакета. Метод executeBatch выбрасывает BatchUpdateException, если какая-либо из команд в пакете не выполняет , выполняется правильно или если команда пытается вернуть результирующий набор.

Но некоторые драйверы JDBC могут поддерживать, попробовать на свой страх и риск.

+0

Спасибо. +1, так что я должен сделать, чтобы получить ResultSet из запроса, который содержит несколько операторов? – CHEBURASHKA

Смежные вопросы