PL SQL 触发器的大小限制是不是限制为 32Kb?

Posted

技术标签:

【中文标题】PL SQL 触发器的大小限制是不是限制为 32Kb?【英文标题】:Is the size limit of PL SQL Triggers limited to 32Kb?PL SQL 触发器的大小限制是否限制为 32Kb? 【发布时间】:2016-11-04 18:27:11 【问题描述】:

我们可以为复杂的操作使用触发器吗?

【问题讨论】:

需要一个示例,然后我们才能查看您的请求,例如什么类型的复杂操作 我投票结束这些问题,因为不清楚您的要求。也就是说,触发器可用于复杂的操作。 【参考方案1】:

是的,32kb 的触发器有限制,但你可以调用其他代码,复杂的操作应该不是问题

Oracle Docs

触发器的大小不能超过 32K。

如果触发器的逻辑需要超过 60 行的 PL/SQL 源代码,则将大部分源代码放在存储的子程序中,并从触发器调用子程序。有关触发器调用的子程序的信息,请参阅"Subprograms Invoked by Triggers"。

来自这个book

【讨论】:

【参考方案2】:

触发器不适合“复杂操作”。事实上,触发器非常适合的用例很少。大多数关于在 *** 上使用触发器的问题都有用例,这些用例可以在存储过程或其他一些机制中更好地实现。

触发器不适合复杂的操作,因为它们很难被发现。它们也不能很好地扩展。

如果您正在接近 Trigger 主体的 32K 限制,您真的应该重新考虑您的方法。事实上,如果您的代码行数多于拥有表上的属性,您可能应该重新考虑您的方法。

【讨论】:

以上是关于PL SQL 触发器的大小限制是不是限制为 32Kb?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL 触发器以限制每个客户的订单

为啥批量收集到子句限制了 pl/sql 中嵌套表的大小

Oracle 中 varchar2 PL/SQL 子程序参数的大小限制是多少?

PL/SQL 07 触发器 trigger

在 PL/SQL 中的触发器内调用函数

Oracle11G的表空间数据文件大小限制问题处理