sql - 为 PLSQL 块或过程中的查询设置超时?
问题描述
我知道我们可以在架构级别使用资源管理器设置超时。但我想为过程中的特定查询设置超时并捕获异常。假设我想在 15 秒后停止执行特定查询的查询。有什么办法吗?或者任何可用的超时异常?我正在使用 Oracle Db 12.2。谢谢。
解决方案
据我所知,没有这样的事情。
但是,看看这是否有帮助:
- 而不是运行程序本身,安排它(使用
dbms_scheduler
) - 然后,通过查询找到工作
dba_scheduler_running_jobs
- 最后,如果你认为它运行时间过长,杀死它(使用
dbms_scheduler.stop_job
)
是的,我知道 - 你说的是过程中的查询。它使事情变得更加复杂,因为过程的其余部分应该等待该特定查询(现在转换为作业)完成。
但是,如果它是一个循环,您可以设置一个计时器并在每次循环迭代中检查它,然后如果它运行超过 15 秒则退出循环。也许您可以使该查询使用您放入的条件,例如游标 FOR 循环的where
子句...
推荐阅读
- excel - 运行时错误 1004 "_worksheet" 在所有工作表的循环中途
- sql-server - ROW_NUMBER - 从字符串转换日期和/或时间时转换失败
- javascript - 用户按下按钮时如何重新加载本机应用程序
- python - 使用 BS4 解析 Python HTML
- java - 如何将手机中的所有联系人(包括谷歌联系人)读入数组列表?
- rest - NEXTJS API 路由在生产模式下不起作用,出现 502 错误
- apache-nifi - nifi 1.11.4 版本加载时间较长
- javascript - 如何在 JavaScript 中的两个相同字符之间获取子字符串?
- javascript - 为什么手机屏幕上的按钮不调整?
- python - 如何根据标签将 DataFrame 分成多个 DataFrame,然后为每个 DataFrame 进行计算?