oracle11 触发器,触发器 – 在Oracle 11g中创建触发器的问题

尝试使用sql Developer在我的Oracle 11g数据库中创建一个触发器时,我遇到了一个奇怪的错误.这是我做的:

我的桌子:

CREATE TABLE COUNTRY_CODE(

ID NUMBER(19,0) PRIMARY KEY NOT NULL,Code VARCHAR2(2) NOT NULL,Description VARCHAR2(50),created TIMESTAMP DEFAULT CURRENT_TIMESTAMP,created_by VARCHAR2(40) DEFAULT USER,last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP,last_updated_by VARCHAR2(40) DEFAULT USER,archived CHAR(1) DEFAULT '0' NOT NULL );

序列:

CREATE SEQUENCE COUNTRY_CODE_ID_SEQ START WITH 1 INCREMENT BY 1;

触发器:

CREATE OR REPLACE TRIGGER COUNTRY_CODE_TRIGGER

BEFORE INSERT ON COUNTRY_CODE

FOR EACH ROW

DECLARE

max_id number;

cur_seq number;

BEGIN

IF :new.id IS NULL THEN

SELECT COUNTRY_CODE_ID_SEQ.nextval

INTO :new.id

FROM dual;

ELSE

SELECT GREATEST(NVL(MAX(id),0),:new.id)

INTO max_id

FROM COUNTRY_CODE;

SELECT COUNTRY_CODE_ID_SEQ.nextval

INTO cur_seq

FROM dual;

WHILE cur_seq < max_id

LOOP

SELECT COUNTRY_CODE_ID_SEQ.nextval

INTO cur_seq

FROM dual;

END LOOP;

END IF;

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 is in an unrecoverable state.

*Action: Login to ORACLE again so a new server session will be created

有没有人知道这个错误?

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值