Oracle intentará volver a compilar los objetos no válidos a los que se hace referencia. Aquí, el disparador no es válido y cada vez que intente insertar una fila, intentará volver a compilar el disparador y fallará, lo que conduce al error ORA-04098.
Puede select * from user_errors where type = 'TRIGGER' and name = 'NEWALERT'
para ver qué error(es) obtiene realmente el disparador y por qué no se compila. En este caso, parece que te falta un punto y coma al final de insert
línea:
INSERT INTO Users (userID, firstName, lastName, password)
VALUES ('how', 'im', 'testing', 'this trigger')
Así que hazlo:
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;
/
Si recibe una advertencia de compilación cuando lo hace, puede hacer show errors
si está en SQL*Plus o SQL Developer, o consulta user_errors
de nuevo.
Por supuesto, esto supone que sus Users
las tablas tienen esos nombres de columna, y todos son varchar2
... pero presumiblemente estarás haciendo algo más interesante con el gatillo realmente.