0

タイプ(number、integer、integer、integer、float)の列(id、t1、t2、t3、mark)を持つテーブルがあります。学生ID、テスト1のスコア、テスト2のスコア、テストの値を挿入したい3点。トリガーを使用して、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 に答える