Cita:
Iniciado por bogeyboy
Buenas tardes a todos, quisiera a ver si me pudieran ayudar. Me explico, tengo un trigger que quiero poder habilitar o deshabilitar desde una función, lo intento con
disable [nombre trigger] on [nombre_table] , también con
alter trigger [nombre_trigger] [enable/disable] y con
alter table [nombre_tabla] disable/enable all triggers y no ha funcionado ninguno. Tengo el siguiente trozo de código donde quiero que se ejecute:
if (condicion) then
disable trigger [nombre_trigger] on [nombre_tabla];
else
'más condiciones'
end if;
y no consigo que funcione, me podríais echar una manilla???? Gracias de antemano

Ok, no le veo sentido, pero si lo necesitas será por algo. La sentencia correcta es esta :
ALTER TRIGGER NOMBRE_DEL_TRIGGER DISABLE;
Peeeeeeeero como es una sentencia DDL no te funciona así, deberías hacerlo así .
EXECUTE IMMEDIATE ('ALTER TRIGGER NOMBRE_DEL_TRIGGER DISABLE');
Aunque si en la función se hace referencia a esa tabla no estoy seguro que te funcione ya que posiblemente te dé un error tipo ORA-00054, pero todo es probar ¿ no ?
Ya nos dirás.