ORA-04098触发器无效,重新验证失败

时间:2015-07-24 13:23:14

标签: sql oracle11g triggers

我将此触发器插入到我的SQL数据库及其创建成功。但当我插入一个数据评估号为0时,它给出了一个错误:

  

ORA-04098。此触发器是在用户将数据插入考勤表时   如果插入的数据为评估No = 0,则程序应发送该数据   信息到' evalAudit'表

CREATE OR REPLACE TRIGGER zeroEval
BEFORE INSERT OR UPDATE OF evaluation_No 
ON Attendance
FOR EACH ROW
WHEN (NEW.evaluation_No = 0)
BEGIN
IF :NEW.evaluation_No = 0 THEN
INSERT INTO auditEval 
SELECT stu.stud_Name, cou.course_Title, off.start_Date, off.instructor_ID, :NEW.evaluation_No
FROM Student stu, Offerings off, Course cou
WHERE stu.stud_ID = :NEW.stud_ID AND 
off.offering_ID = :NEW.offering_ID AND
cou.course_ID = off.course_ID;
END IF;
END;
/

这是表创建的代码

CREATE TABLE auditEval
( 
    stud_Name       VARCHAR2 (30) ,
    course_Title   VARCHAR2 (30),
    start_Date      DATE ,
    instructor_Name VARCHAR2 (20),
    evaluation_No   VARCHAR2 (10) 
 );

这是用于将数据作为评估No = 0插入考勤的代码。

这是考勤表的代码。

CREATE TABLE Attendance
  (
    evaluation_NO   VARCHAR2 (10) ,
    evaluation_Type VARCHAR2 (10) ,
    stud_ID       VARCHAR2 (10) NOT NULL,
    offering_ID   VARCHAR2 (10) NOT NULL
 );

0 个答案:

没有答案