Na sintaxe de trigger do Oracle, o registro recém-inserido é referido por
:new
, não new
(observe os dois pontos). Além disso, SET
é parte de uma instrução de atualização, não uma maneira de definir valores de campo - eles são feitos por atribuições simples, mas observe que isso é feito com :=
em vez de =
.Então, seu gatilho deve ser:
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;