1
私は給与が5000を超えて募集されている新しいテーブルの従業員にトリガ登録を作成したいと考えています。SQLトリガ - IF条件でINSERT INTOをネストします
私が書いたトリガーはエラーError(2,41): PL/SQL: ORA-00984: column not allowed here
を返しています。
は、ここに私のトリガーです:
CREATE OR REPLACE TRIGGER emp_gotrich_trig BEFORE UPDATE OF salary ON employees
FOR EACH ROW BEGIN
IF :NEW.salary>5000 AND :OLD.salary<=5000 THEN
INSERT INTO emp_gotrich VALUES (employee_id, SYSDATE, :OLD.salary, :NEW.salary);
END IF;
END;
そして、ここでemp_gotrich
テーブルです:
CREATE TABLE emp_gotrich (emp_id NUMBER(6), raise_date DATE, old_sal NUMBER(8,2), new_sal NUMBER(8,2));
私はINSERT
statemetが適切にネストされていないが、私は何を変えるべきかわからないことを推測します。
私は 'WHEN'を使いこなそうとしましたが、どこでコロンを除外すべきか分かりませんので、やっても問題ありません。
CREATE OR REPLACE TRIGGER emp_getrich_log BEFORE UPDATE OF salary ON employees FOR EACH ROW
WHEN
NEW.salary>5000 AND OLD.salary<=5000;
BEGIN
INSERT INTO emp_gotrich VALUES(employee_id, SYSDATE, :OLD.salary, :NEW.salary);
END;
私はそれを実行する方法を見つけるのを手伝ってください。