Trigger sobre eventos de DDL

Al querer monitorizar las operaciones de DDL en una base de datos he encontrado un bug muy grave.

He creado 3 triggers para capturar las operaciones DROP, TRUNCATE y ALTER. Al parecer si esta activado el trigger de ALTER provoca errores de este tipo

SQL> drop table dept;
drop table dept
           *
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 2
ORA-06502: PL/SQL: numeric or value error: character string buffer too small

Lo peor es que la tabla dept sigue existiendo en el diccionario de datos pero si se intenta describir la tabla con DESC dept dice que no existe.

Parece que se ha corrompido el diccionario de datos, hasta ahora se que borrando el usuario se arregla pero logicamente esto no puede ser una solucion. La otra opcion es no utilizar el Trigger de ALTER, sin ese trigger los otros dos funcionan a la perfeccion.

Aftecta a las versiones 10.2.0.3 y 10.2.0.4 (las que he podido probar)

Asi que cuidadin!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s