ORA-23350: maximum number of recursive calls exceeded ORACLE 报错 故障修复 远程处理

文档解释

ORA-23350: Maximum number of Recursive calls exceeded

Cause: This usually occurs when trying to resolve conflicts in a table while concurrent updates to the same row create more conflicts.

Action: Re-execute the deferred transaction from DefError using dbms_defer_sys.execute_error

ORA-23350:最大递归调用数量超过限制。

这是由于在同一事务中已达到最大重复调用限制(称为递归调用)而generate的Oracle错误。

官方解释:

使用超出了最大递归深度(MAXRECURSION)的嵌套调用语句。该错误可能是由修改MAXRECURSION持续变量而引起的,或由公开函数中嵌套调用引起的。递归调用是在程序中引用它自身的步骤。

常见案例

将大量数据从表A中插入表B时,可能会发出ORA-23350的错误,因为SQL的递归调用次数已达到最大值。

一般处理方法及步骤

1. 识别哪一个字段/函数开始了递归,并分析此字段/函数调用了哪些函数。

2. 根据实际情况修改递归函数中的参数或逻辑,以减少递归次数。

3. 如果需要,增加最大递归深度限制(MAXRECURSION)的变量的值。

4. 重新编译已修改的字段/函数。

香港美国云服务器首选后浪云,2H2G首月10元开通。
后浪云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

THE END