当前位置: 首页 > 面试题库 >

如何在plsql中为匿名块或查询设置超时?

许曦
2023-03-14
问题内容

我知道您可以设置用户个人资料或设置查询的一般超时时间。

但是我希望对过程中的特定查询设置超时并捕获异常,例如:

begin
      update tbl set col = v_val; --Unlimited time
      delete from tbl where id = 20; --Unlimited time

      begin
            delete from tbl; -- I want this to have a limited time to perform
            exception  when (timeout???) then
            --code;

      end;

end;

这可能吗?我可以捕获所有超时异常吗?每个块或查询?找不到有关该主题的太多信息。


问题答案:

不,您不能在pl / sql中设置超时。为此,您可以使用宿主语言来嵌入sql和pl / sql。



 类似资料:
  • 问题内容: 我在检索Java中匿名PLSQL块的结果时遇到了一些麻烦。 这是块: 我把查询放在一个字符串中: 那字符串正确吗? 尝试检索的方法: 当我收到此消息时,它不起作用: 那我该如何找回呢? 问题答案: 这是因为 隐式 日期转换失败。添加而不是直接将日期字符串分配给日期变量。如果使用,则不需要。 隐式转换通常取决于会话的。 您的罪魁祸首。实际上将尝试转换为日期。因此引发了异常! 然后, 将设

  • 问题内容: 如何为此操作创建超时:? 问题答案: 我相信正确的方法将是这样的: 当然,这是我使用Oracle的地方,但是我希望这可以给您一个想法。

  • 问题内容: 嗨,我有一个命名查询 我想这样设置限制: 但这在服务器启动时显示错误。我正在使用以下代码在DAO类中调用查询: 需要设置开始和结束参数。请帮忙。 问题答案: 正如@DataNucleus所说,LIMIT在JPQL中不是有效的关键字。这不是指定要返回多少行的方法。这是您的操作方式: 这将是调用命名查询的代码:

  • 如何在应用程序级别配置默认查询超时。我使用spring、hibernate和db2作为后端。在datasource级别设置超时不是一个选项,因为我们使用的是旧版本的IBM WebSphere。我尝试在事务管理器中配置defaultTimeout,但这没有帮助。我也不想集成c3p0连接池。hibernate是否为在应用程序级别设置全局查询超时提供了其他选项,如果是,如何配置。

  • 问题内容: 我目前从EntityManager查询中收到连接超时错误。是否可以为这些设置超时? persistence.xml 代码在我的线程的运行功能中超时: 我收到的超时错误: 问题答案: 是的,那里有 javax.persistence.query.timeout 。根据JPA 2.0规范,对此查询提示的支持是可选的: 可移植应用程序不应依赖此提示。根据使用的持久性提供程序和数据库,可能会或

  • 在elasticsearch term查询文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html中,声明有一个字段 然而,我无法设置它。我可以设置和而没有问题,但不能设置。 当我运行时,我得到错误状态。 我在哪里搞错了,或者文档是错误的?