我需要创建一个临时表,并在一个会话中针对Netezza数据库选择临时表。
表:abc,def
String query = create temp table MyTemp as select * from abc join def; select col1, col2 from MyTemp;";
boolean result = statement.execute(query);
while(true) {
if(result) {
ResultSet rs = statements.getResultSet();
while(rs.next()) {
//Access result set.
}
} else {
int count = statement.getUpdateCount(); -- CREATE statement output
if(count == -1) {
break;
}
result = statement.getMoreResults();
}
}
我希望在执行CREATE临时语句后跟SELECT语句时从语句中获取updatecount和结果集。
我在第一个语句(CREATE语句输出)中得到结果为true。但是后来当statement.getMoreResults被执行时,我得到了错误。但根据文档,statement.getMoreResults为ResultSet输出返回true。
我有一个替代解决方案,即使用分号拆分字符串并使用相同的语句执行各个查询。但我想知道上述解决方案为什么不起作用。
答案 0 :(得分:0)
我不确定Netezza JDBC驱动程序是否支持它,或者它是否可以使用您的示例查询和现有代码,但看起来您可能需要将allowMultiQueries=true
作为选项传递给您JDBC URL。
有关详细信息,请参阅this answer。