【发布时间】:2009-06-23 19:29:51
【问题描述】:
PL/SQl 光标由于某种原因被挂起,这使我的应用程序在尝试循环通过 ResultSet 时挂起。
有没有办法处理这个问题,比如如果数据库挂起,则使结果集超时?
【问题讨论】:
标签: java database plsql timeout
PL/SQl 光标由于某种原因被挂起,这使我的应用程序在尝试循环通过 ResultSet 时挂起。
有没有办法处理这个问题,比如如果数据库挂起,则使结果集超时?
【问题讨论】:
标签: java database plsql timeout
在 java.sql.Statement 接口上有一个 setQueryTimeout(int)。您应该在调用 executeQuery() 之前调用它。
您也可以通过在 Statement 上调用 cancel() 来异步取消正在运行的查询。
编辑:Oracle jdbc 驱动程序版本 6 肯定支持这些方法,因为我在我的一个项目中使用它。
【讨论】:
queryTimeout 并不适用于所有情况。例如,如果ResultSet 作为StoredProcedure 中的输出参数返回。超时仅在 CallableStatement.execute() 方法中受到尊重