【问题标题】:Is there any way to increase recursion levels limit in Oracle?有什么方法可以增加 Oracle 中的递归级别限制?
【发布时间】:2020-07-31 03:21:24
【问题描述】:

众所周知,编写 SQL 触发器时不小心会导致以下问题:

ORA-00036: maximum number of recursive SQL levels (50) exceeded

当我寻找这个问题的解决方案时,它们都很简单:修复你的代码,因为它有问题。在所有情况下,这都是一个很好的建议。

但是出于学术目的:有没有办法增加这个最大数量?我看到有时它被称为:

maximum number of recursive SQL levels (string) exceeded

那么也许有一种方法可以将您自己的价值置于string 之下?

【问题讨论】:

  • 你在哪里遇到这个问题?
  • @GordonLinoff 在一个完全抽象的示例中,我故意进行循环递归。我真的必须找到一种方法来控制我的学术课程的递归级别值:) 这不是现实生活中的情况,我只是想知道是否有办法控制这个参数。
  • 递归在什么地方? CTE?功能?程序?触发?
  • 就像我在一个问题中所说:“编写 SQL 触发器时”:) 下面是一个示例:在插入或更新用户之前创建或替换触发器 recursion_test 每行开始插入用户(名字,姓氏) , District_id) 值 ('John', 'McDummy', 111);结尾; / 它在 50 级停止。问题是:我们可以操纵这个限制还是硬编码?
  • “编写触发器时”未指定导致问题的原因。触发器可以有递归 CTE、函数调用和存储过程调用。

标签: sql oracle recursion limit


【解决方案1】:

嗯,取决于。 documentation

触发级联限制:取决于操作系统,通常为 32

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 2011-02-28
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2017-10-27
    • 1970-01-01
    相关资源
    最近更新 更多