Nothing to do with your SAVEPOINT query, but I just wanted to point out that you can INSERT ... SELECT directly without the extra VALUES and subquery: INSERT INTO AUDIT(EMP_ID, NOTICE) SELECT NEW.ID, CASE 1 WHEN EMP_ID < 10 THEN NEW.NAME || ' is too young to be an employee.' ELSE 'OK.' END;