在Oracle中,我一直收到PLSQL的Fatal ErrorReset连接。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Oracle中,我一直收到PLSQL的Fatal ErrorReset连接。相关的知识,希望对你有一定的参考价值。
我正在为一个学校项目编写脚本,它需要使用一个触发器来维护一个历史表。我之前成功地创建了这个触发器,但是我不得不删除表格并修改了一下。现在我已经完成了对数据库的修改,当我再次尝试创建触发器时,我一直收到以下消息。
Error starting at line : 189 in command -
CREATE OR REPLACE TRIGGER WeightChangeTrigger
BEFORE UPDATE OF Current_weight_lbs ON Account
FOR EACH ROW
BEGIN
INSERT INTO WeightChange (WeightChange_id, Account_id, OldWeight, NewWeight, ChangeDate)
VALUES (NVL((SELECT MAX(WeightChange_id)+1 FROM WeightChange), 1),
:NEW.Account_id,
:OLD.Current_weight_lbs,
:NEW.Current_weight_lbs,
TRUNC(SYSDATE));
END;
Error report -
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [kqlidchg0], [], [], [], [], [], [], [], [], [], [], []
ORA-00604: error occurred at recursive SQL level 1
ORA-00001: unique constraint (SYS.I_PLSCOPE_SIG_IDENTIFIER$) violated
00603. 00000 - "ORACLE server session terminated by fatal error"
*Cause: An Oracle server session was in an unrecoverable state.
*Action: Log in to Oracle again so a new server session will be created
automatically. Examine the session trace file for more
information.
我的脚本开始使用DROP TABLE命令,这样我就可以修改并重新运行脚本。脚本在创建表和索引的整个过程中都运行得很完美,然后在遇到创建触发器时就崩溃了。正如我所提到的,它之前没有这样做(触发器成功编译wo错误),所以也许我只是需要给它一些时间,因为这可能是Oracle的服务器问题?
此外,我收到一个弹出窗口,上面有以下信息。
你的数据库连接已被重置。 任何悬而未决的事务或会话状态已经丢失。
我已经关闭了开发人员,只是像它建议的那样重新连接,并不断发生同样的事情。如果有任何建议或解释为什么会发生这种情况,我将非常感激。我的项目周四早上就要完成了,所以这给我带来了很多不必要的焦虑。
ORA-00600
从来都不是什么好消息,这意味着 甲骨文错误 而你也无能为力,只能搜索My Oracle Support或提出服务请求。
显然,如果你运行下面的语句,你可能会摆脱这个问题。
ALTER SESSION SET PLSCOPE_SETTINGS = 'IDENTIFIERS:NONE';
另外,这个可能会有帮助
ORA-00001: 违反了唯一约束(SYS.I_PLSCOPE_SIG_IDENTIFIER$)
试着简单地重命名触发器,然后再运行脚本。
以上是关于在Oracle中,我一直收到PLSQL的Fatal ErrorReset连接。的主要内容,如果未能解决你的问题,请参考以下文章
有一台oracle 11g的监听莫名死掉,lsnrctl stop /status 一直处于等待,客户端plsql连不上