【发布时间】: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