0

我有一个表格,其中的列(id、t1、t2、t3、mark)分别具有类型(数字、整数、整数、整数、浮点数)我想插入学生 ID、测试 1 分数、测试 2 分数和测试的值3分。使用触发器我想在“标记”列中插入三个测试分数的平均值。

这是我写的触发器,但它给出了编译错误。

create or replace trigger trigger_2 before insert on grades
     for each row

declare
total integer ;
begin
total := :NEW.t1 + :NEW.t2 + :NEW.t3    
:NEW.mark := total/3.0;
end;
SQL> /

Warning: Trigger created with compilation errors.`
4

2 回答 2

0

这是(如果您使用的是 Oracle 10g):

CREATE OR REPLACE TRIGGER trigger_2
  BEFORE INSERT ON grades
  FOR EACH ROW
BEGIN
  :NEW.mark := (:NEW.t1 + :NEW.t2 + :NEW.t3)/3;
END;
/
于 2013-02-27T11:23:39.997 回答
0

你试试这个模板伙计

CREATE OR REPLACE TRIGGER <trigger_name>
      BEFORE INSERT ON grades
      FOR EACH ROW
    BEGIN
      :NEW.mark := (:NEW.<val1> + :NEW.<val2> + :NEW.<val3>...<valn>)/n;
    END;
    /
于 2013-02-27T15:38:30.880 回答