我正在使用 Oracle 12c Enterprise (12.1.0.2.0),并且有一个根据某些规则使用动态 SQL 创建查询的包。然后通过打开游标来执行动态 SQL 查询,并将游标返回给应用程序。 我还需要动态添加查询执行超时,以便根据生成的 SQL 类型,查询可能运行更长或更短的时间,因此在 JDBC 连接字符串/连接对象上设置此值不是解决方案。 在打开游标之前,我尝试使用“ALTER SESSION SET PLSQL_TIMEOUT”命令,但它失败,表明 PLSQL_TIMEOUT 无效(即使有记录)。 我已经搜索过提示但没有运气。 有谁知道如何限制这种特殊情况下的查询执行时间?有什么办法吗? 预先感谢!
据我所知,没有(简单)的方法可以做到这一点。
你可能
alter system
,这不是许多用户被允许执行的操作
SELECT sid, serial# FROM v$session WHERE USERNAME = 'THAT_USER';
然后(使用您在上面收集的信息)
ALTER SYSTEM KILL SESSION 'sid, serial#';