我在 Oracle 中不断收到 PL/SQL 的致命 Error/Reset 连接

I keep receiving Fatal Error/Reset Connection for PL/SQL in Oracle

我正在为学校项目编写脚本,它需要使用触发器来维护历史记录 table。我之前成功创建了这个触发器,但是我不得不删除 tables 并稍微修改一下。现在我已经完成了数据库的修改,当我再次尝试创建触发器时,我不断收到以下消息。

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 命令开始,这样我就可以更改和重新 运行 脚本。该脚本在所有 table 和索引创建过程中完美运行,然后在遇到触发器创建时崩溃。正如我提到的,它之前没有这样做(触发器成功编译 w/o 错误),所以也许我只需要给它一些时间,因为它可能是 Oracle 的服务器问题?

此外,我还收到一个弹出窗口 window,其中包含以下消息:

您的数据库连接已重置。任何挂起的事务或会话状态都已丢失。

我关闭了开发人员只是为了像它建议的那样重新连接,并且不断发生同样的事情。对于为什么会发生这种情况的任何建议或解释,我们将不胜感激。我的项目在星期四早上到期,所以这给了我很多不必要的焦虑。

ORA-00600从来都不是好消息;这意味着 Oracle 错误,除了搜索 My Oracle Support 或提出服务请求之外,您无能为力。

显然,如果你运行下面的语句,你可能会解决问题:

ALTER SESSION SET PLSCOPE_SETTINGS = 'IDENTIFIERS:NONE';

此外,这可能会有所帮助:

ORA-00001: unique constraint (SYS.I_PLSCOPE_SIG_IDENTIFIER$) violated

尝试简单地重命名触发器并再次 运行 脚本。