execute()不返回任何警告

时间:2012-10-04 15:43:19

标签: java jdbc sybase

我有这个代码使用JDBC对Sybase DB运行存储过程:

CallableStatement stmt = connection.prepareCall("{ ? = call mysproc(?,?,?) }");
// call setXXX for each input param
stmt.registerOutParameter("return", Types.INTEGER);
stmt.execute();

StringBuilder builder = new StringBuilder();
SQLWarning warn = stmt.getWarnings();
while (warn != null) {
   builder.append(warn.getMessage());
   warn = warn.getNextWarning();
}

执行存储过程,但是没有返回警告,即使存储过程调用PRINT,如果我手动运行它也可以看到。

如果我将execute()更改为executeUpdate(),那么我会收到警告,但可能会发生的情况是存储过程也会返回ResultSet,在这种情况下,调用会因为意外的结果。不幸的是,没有办法预先知道调用将返回什么,但同时我需要收集更新的行数和警告。

有什么建议吗?

0 个答案:

没有答案