2

我有这段代码可以使用 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()then 我会收到警告,但可能发生的情况是存储过程也返回 a ResultSet,在这种情况下,由于意外结果,调用失败。不幸的是,无法预先知道调用将返回什么,但同时我需要收集更新的行数和警告。

有什么建议么?

4

0 回答 0