第 1 行出现错误:
ORA-00036: 超过递归 SQL 级别的最大值 50
ORA-06512: 在 "SCOTT.TRIGGER2", line 2
ORA-04088: 触发器 'SCOTT.TRIGGER2' 执行过程中出错
ORA-06512: 在 "SCOTT.TRIGGER2", line 2
ORA-04088: 触发器 'SCOTT.TRIGGER2' 执行过程中出错
ORA-06512: 在 "SCOTT.TRIGGER2", line 2
ORA-04088: 触发器 'SCOTT.TRIGGER2' 执行过程中出错
...为什么
CREATE OR REPLACE TRIGGER bi_control_cno
BEFORE INSERT ON Client
BEGIN
INSERT INTO Client (cilentNo, fName, IName, telNo, prefType, maxRent, staffNo) VALUES (sequence.nextval, :NEW.fName, :NEW.IName, :NEW.telNo, :NEW.prefType, :NEW.maxRent, :NEW.staffNo);
END;
/
这样会造成insert然后再insert的死循环呢?
我要怎样改呢?
ORA-00036: 超过递归 SQL 级别的最大值 50
ORA-06512: 在 "SCOTT.TRIGGER2", line 2
ORA-04088: 触发器 'SCOTT.TRIGGER2' 执行过程中出错
ORA-06512: 在 "SCOTT.TRIGGER2", line 2
ORA-04088: 触发器 'SCOTT.TRIGGER2' 执行过程中出错
ORA-06512: 在 "SCOTT.TRIGGER2", line 2
ORA-04088: 触发器 'SCOTT.TRIGGER2' 执行过程中出错
...为什么
CREATE OR REPLACE TRIGGER bi_control_cno
BEFORE INSERT ON Client
BEGIN
INSERT INTO Client (cilentNo, fName, IName, telNo, prefType, maxRent, staffNo) VALUES (sequence.nextval, :NEW.fName, :NEW.IName, :NEW.telNo, :NEW.prefType, :NEW.maxRent, :NEW.staffNo);
END;
/
这样会造成insert然后再insert的死循环呢?
我要怎样改呢?
Before Insert On Client
For Each Row
Begin
Select sequence.Nextval Into :New.cilentNo From dual;
End;
然后提交运行这个SQL就可以了,用不上trigger的
这个是 表级trigger的常见错误了。递归调用了。