In de triggersyntaxis van Oracle wordt naar het nieuw ingevoegde record verwezen met :new , niet new (let op de dubbele punt). Bovendien, SET is een onderdeel van een update-instructie, niet een manier om veldwaarden in te stellen - die worden gedaan door eenvoudige toewijzingen, maar merk op dat deze worden gedaan met := in plaats van = .
Dus je trigger zou moeten luiden:
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;