CREATE OR REPLACE TRIGGER check_salary BEFORE UPDATE ON emp_bonus REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW declare v_min_salary number(30); v_max_salary number(30); begin if :new.salary=0 then SELECT jobs.min_salary, jobs.max_salary into v_min_salary, v_max_salary FROM employees, jobs WHERE ((jobs.job_id = employees.job_id) AND (employees.employee_id = :new.emp_id)); :new.salary := (v_min_salary+v_max_salary)/2; end if; end; /