Dejalo como un campo calculado. Evita el update.
Solo tendrias que quitar el update.
Si definitivamente lo quieres almacenar, Para eso, te recomendarìa mas unn trigger, que antes de intertarse un registro en esa tabla, calcule el valor.
quedaria asi mas o menos:
Código SQL:
Ver originalCREATE OR REPLACE TRIGGER tri_tp_emp_contrato
BEFORE INSERT ON tp_emp_contrato FOR EACH ROW
BEGIN
IF :NEW.TP_trabajador='TRABAJADOR DEPENDIENTE' THEN
:NEW.SALARIO :=1400;
elsif :NEW.TP_trabajador='TRABAJADOR FIJO' THEN
:NEW.SALARIO :=2000;
ELSE
:NEW.SALARIO :=800;
END IF;
END;