Oracle - TRIGGER...no es válido y ha fallado al REVALIDAR

 
Vista:

TRIGGER...no es válido y ha fallado al REVALIDAR

Publicado por ROUNDROBIN (1 intervención) el 02/06/2009 22:14:43
Wenas, estoy creando un trigger que inserte una fila en una tabla auditoria cuando se actualiza una tabla en concreto pero no consigo que me funcione...si me exais un cable

SQL> CREATE OR REPLACE TRIGGER nombretrigger
2 AFTER update ON tabla
3 FOR EACH ROW
4 BEGIN
5 INSERT INTO AUDITORIA(NUMERO) VALUES(1);
6 END;
7 /

Disparador creado.

el triger se crea correctamente... lo he simplificado haciendo pruebas y no consigo que me haga un update

SQL> UPDATE tabla SET
2 PRECIO=800
3 WHERE id=2;
UPDATE TABLA SET
*
ERROR en línea 1:
ORA-04098: el disparador 'AGBD.nombretrigger' no es válido y ha fallado al
revalidar

Alguien sabe por que es esto? estoy trabajando como administrador en la bd

un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AYUDA... CON ESTE TRIGGER

Publicado por zeus (1 intervención) el 06/06/2009 18:12:51
TENGO EL MISMO PROBLEMA QUE HA COMENTADO ROUNDROBIN....SI ALGUIEN PUEDE AYUDAR (NO PONIENDO ENLACES TONTOS QUE NO ME HAN AYUDADO, COMO EL DE ARRIBA)

UN SALUDO Y GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA... CON ESTE TRIGGER

Publicado por Sergio (79 intervenciones) el 19/06/2009 01:33:47
El problema -en ese caso- es que TABLA se encuentra en un esquema y AUDITORIA otro esquema, si no se le otorgan los permisos necesarios al esquema desde donde se ejecuta el trigger obtendrán ese mensaje de error.

Ejemplo:

CONNECT TEST1/TEST1@11G_2003EE
/

CREATE TABLE CUSTOMER(
FNAME VARCHAR2(25)
)
/

GRANT SELECT, INSERT, UPDATE ON CUSTOMER TO TEST2
/

CONNECT sys@11G_2003EE as sysdba
/

CREATE TABLE test2.CUST_LOG(
FNAME VARCHAR2(25)
)
/

CREATE OR REPLACE TRIGGER TEST1.CUST_TRIG
AFTER UPDATE ON TEST1.CUSTOMER
FOR EACH ROW
BEGIN
INSERT INTO TEST2.CUST_LOG(FNAME) VALUES(:NEW.FNAME);
END;
/

CONNECT TEST2/TEST2@11G_2003EE
/

INSERT INTO TEST1.CUSTOMER(FNAME) VALUES ('JON')
/

UPDATE TEST1.CUSTOMER SET FNAME='JOHN'
/

COMMIT
/

Resultado:

Connected as TEST1@11G_2003EE
Table created.
Grant complete.
Connected as SYS@11G_2003EE as sysdba
Table created.
Warning: compiled but with compilation errors
Connected as TEST2@11G_2003EE
1 row created.
UPDATE TEST1.CUSTOMER SET FNAME='JOHN'
Error at line 62
ORA-04098: trigger 'TEST1.CUST_TRIG' is invalid and failed re-validation

Commit complete.

De hecho el trigger se crea pero con error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA... CON ESTE TRIGGER

Publicado por Diego (2 intervenciones) el 20/08/2015 20:52:54
Gracias men !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:TRIGGER...no es válido y ha fallado al REVALIDA

Publicado por sublevar (1 intervención) el 14/05/2015 16:15:49
ya no existe tal pack :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar