Oracle ще се опита да прекомпилира невалидни обекти, както са посочени. Тук тригерът е невалиден и всеки път, когато се опитате да вмъкнете ред, той ще се опита да прекомпилира тригера и ще се провали, което води до грешка ORA-04098.
Можете да select * from user_errors where type = 'TRIGGER' and name = 'NEWALERT'
за да видите какви грешки(и) всъщност получава тригерът и защо не се компилира. В този случай изглежда, че ви липсва точка и запетая в края на insert
ред:
INSERT INTO Users (userID, firstName, lastName, password)
VALUES ('how', 'im', 'testing', 'this trigger')
Така че направете го:
CREATE OR REPLACE TRIGGER newAlert
AFTER INSERT OR UPDATE ON Alerts
BEGIN
INSERT INTO Users (userID, firstName, lastName, password)
VALUES ('how', 'im', 'testing', 'this trigger');
END;
/
Ако получите предупреждение за компилация, когато го направите, можете да направите show errors
ако сте в SQL*Plus или SQL Developer, или подайте заявка user_errors
отново.
Разбира се, това предполага вашите Users
таблиците имат тези имена на колони и всички те са varchar2
... но вероятно наистина ще правите нещо по-интересно със спусъка.