ORA-600 [16606] Error From Database Level Triggers Using :OLD or :NEW Syntax [ID 1089801.1]

本文介绍了Oracle数据库中ORA-600[16606]错误的发生原因及解决办法。该错误通常出现在执行数据库触发器时,并伴有不当使用PL/SQL关联名称(:OLD和:NEW)的情况。文章提供了详细的调用堆栈信息及修改建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.

Applies to:

Oracle Server - Enterprise Edition - Version: 8.1.5.0 to 11.2.0.2 - Release: 8.1.5 to 11.2
Information in this document applies to any platform.

Symptoms

An ORA-600 [16606] error occurs on execution of a database level trigger, such as a logon trigger.

The call stack for the ORA-600 [16606] will resemble:

kglsget kqlsget psdghi ph1pbv ph1gnt ph1ylx ph1lex plsql ph1run ph1drv phpsyn phpcmp pcicms2 pcicmp2 kkxcmp0 rpiswu2 kkxcmp kktcrt opiexe opiosq0 kpooprx kpoal8 opiodr ttcpip opitsk opiino opiodr opidrv sou2o opimai_real main __start


 

Changes

The trigger has been updated to reference correlation variables :NEW or :OLD.

Cause

This is due to incorrect use of PLSQL correlation names (:OLD & :NEW) in a trigger as identified in Bug:8319488, as correlation names are only supported for row level DML triggers.

Solution

Correct the application code to remove use of the correlation names :OLD and/or :NEW in anything but row level (i.e. FOR EACH ROW) DML triggers.

References

BUG:8319488 - ORA-600 [16606] WITH LOGON TRIGGER
NOTE:138525.1 - ORA-600 [16606]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值