0
我是與數據庫相關的新事物。我有我的學校作業。它要求我爲員工工資更新時創建一個觸發器。問題是:Oracle - 嘗試創建觸發器,但不斷收到編譯錯誤導致的觸發器。
「假設STA有一條規則說明員工的薪水不能超過原始薪資的20%。創建一個觸發器salary_change來強制執行此約束。觸發器觸發每當有更新時當規則被違反salaryin employeetableand輸出相應的錯誤信息。「
表的結構可用here
下面是我做了但編譯錯誤創建的代碼。
create or replace trigger salary_change
before update of emp_salary on employee
for each row
begin
if :new.emp_salary > :emp_salary * 1.2 then
raise_application_error(-20000, ('New salary for employee ' || emp_name || ' is getting more than 20% raise'));
end if;
end;
/
我可以知道什麼時候我應該用「:」?在我的導師給出的例子中,有時會使用new.emp_salary,但有時會使用new.emp_salary。 「:」有時也與「=」一起使用。 – Lewis
我添加了old.emp_salary,但仍然收到編譯錯誤導致的觸發器。 – Lewis