Nella sintassi del trigger di Oracle, il record appena inserito è indicato da :new , non new (notare i due punti). Inoltre, SET fa parte di un'istruzione di aggiornamento, non un modo per impostare i valori dei campi:quelli vengono eseguiti da semplici assegnazioni, ma si noti che vengono eseguiti con := anziché = .
Quindi, il tuo trigger dovrebbe leggere:
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;