Oracleのトリガー構文では、新しく挿入されたレコードは:newによって参照されます。 、newではありません (コロンに注意してください)。さらに、SET は更新ステートメントの一部であり、フィールド値を設定する方法ではありません。これらは単純な割り当てによって行われますが、:=を使用して行われることに注意してください。 =ではなく 。
したがって、トリガーは次のようになります。
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;