Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Habilitar/Deshabilitar triggers

Estas en el tema de Habilitar/Deshabilitar triggers en el foro de Oracle en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 09/02/2010, 13:41
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
Habilitar/Deshabilitar triggers

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

  #2 (permalink)  
Antiguo 10/02/2010, 01:14
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Habilitar/Deshabilitar triggers

Cita:
Iniciado por bogeyboy Ver Mensaje
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.
  #3 (permalink)  
Antiguo 10/02/2010, 12:17
 
Fecha de Ingreso: octubre-2007
Mensajes: 18
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Habilitar/Deshabilitar triggers

Gracias jc3000, el necesitarlo es por lo siguiente, he de hacer un trigger para una tabla en concreto de mi bd, hasta ahí todo perfecto; este trigger ha de hacer una comprobación (aunque no se deba hacer dentro del trigger, es por eso por lo que la hago en una función) antes de insertar o updatar en dicha tabla, por que si un número de los que se inserta no es múltiplo de 10 hay que coger el siguiente múltiplo de 10 mayor que el número que se va a introducir, entonces cuando hago el insert o update dentro del trigger o de la función, me vuelve a disparar el trigger, es por eso el deshabilitarlo

Etiquetas: trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:34.