В вашем операторе обновления были синтаксические ошибки. Кроме того, REFERENCING NEW AS NEW OLD AS OLD
не требуется.
В вашем заявлении на обновление не должно быть op_id
и eqp_id
в where clause
вместо SET
?
CREATE OR REPLACE TRIGGER table_trg AFTER
INSERT OR UPDATE ON table_a
FOR EACH ROW
BEGIN
IF (:new.eqp_id <>:old.eqp_id AND :new.op_id <>:old.op_id ) THEN
INSERT INTO table_b (
eqp_id,
op_id,
sv_record,
update_time
) VALUES (
:new.eqp_id,
:new.op_id,
:new.sv_record,
:new.update_time
);
ELSE
UPDATE table_b
SET sv_record = :new.sv_record,
update_time = systimestamp
WHERE eqp_id = :new.eqp_id --change the columns in set and where appropriately.
AND op_id = :new.op_id,
END IF;
end;
/