2014-02-06 57 views
3

我需要的结果从执行批量设定:如何从executeBatch获取ResultSet?

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(); 

那些我执行批处理我怎样才能得到结果从选择查询设置?

+0

可能的重复http://stackoverflow.com/questions/21118698/retrieve-resultset-using-callablestatement-after-executebatch –

回答

4

总之,你不应该。应该使用简单的多个execute()。

根据javadoc of executeBatch(),它不应该支持getResultSet()/ getMoreResults()API。

另外,在JDBC™ 4.0 Specification#14.1.2

只有DDL和DML命令返回一个简单的更新计数可以作为间歇的一部分来 执行。如果批处理中的任何命令无法正常执行,或者命令尝试返回结果集,则executeBatch方法会抛出 BatchUpdateException。

但是有些JDBC驱动程序可能会支持,请自行承担风险。

+0

谢谢。 +1所以我应该怎么做才能从包含多个语句的查询中获取ResultSet? – CHEBURASHKA