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

error en trigger

Estas en el tema de error en trigger en el foro de Oracle en Foros del Web. hola quiero hacer un triger que me actualize los datos de una columna llamada puesto donde la condicion es que el codigo de de la ...
  #1 (permalink)  
Antiguo 03/06/2016, 21:57
 
Fecha de Ingreso: noviembre-2014
Ubicación: guadalajara
Mensajes: 14
Antigüedad: 9 años, 4 meses
Puntos: 0
crear trigger en oracle

hola quiero hacer un triger que me actualize los datos de una columna llamada puesto
donde la condicion es que el codigo de de la oficina (es otra columna de la misma tabla empleados) es 45200
en teoria esta correcta la sintaxis no me marca error

Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER ActualizarEmpleado
  2.  BEFORE UPDATE OF Puesto
  3.  ON Empleados
  4.  FOR each ROW
  5.  BEGIN
  6.  UPDATE Puesto
  7. SET Puesto='GERENCIA'
  8. WHERE CodigoOficina='45200';

pero la hacer la consulta
no me hace el cambio a gerencia

donde esta mi error es el primer trigger que realizo

Última edición por gnzsoloyo; 07/06/2016 a las 06:11
  #2 (permalink)  
Antiguo 07/06/2016, 04:10
Avatar de AVBorland  
Fecha de Ingreso: marzo-2016
Ubicación: Moscu
Mensajes: 42
Antigüedad: 8 años, 1 mes
Puntos: 4
Respuesta: error en trigger

Hola! Que falta tiene usted?
  #3 (permalink)  
Antiguo 07/06/2016, 05:17
Avatar de AVBorland  
Fecha de Ingreso: marzo-2016
Ubicación: Moscu
Mensajes: 42
Antigüedad: 8 años, 1 mes
Puntos: 4
Respuesta: error en trigger

Hmmm...
Cita:
Iniciado por crash_16109 Ver Mensaje
hola quiero hacer un triger que me actualize los datos de una columna llamada PUESTO
donde la condicion es que CODIGOOFICINA (es otra columna de la misma tabla empleados) sea 45200
en teoria esta correcta la sintaxis no me marca error

create or replace trigger ActualizarEmpleado
before update of Puesto
on Empleados
for each row
begin
UPDATE Puesto
SET Puesto='GERENCIA'
WHERE CodigoOficina='45200';
1. Necesario añadir "end;" despues " WHERE CodigoOficina='45200'; "
2. Por que Update Puesto ??? Update Empleados !
3. Como yo pienso, recibe usted falta ORA-04091: table Empleados is mutating, trigger/function may not see it.
Necesario utilizar dos triggeros y tabla temporala

Última edición por AVBorland; 07/06/2016 a las 06:18
  #4 (permalink)  
Antiguo 07/06/2016, 08:36
Avatar de AVBorland  
Fecha de Ingreso: marzo-2016
Ubicación: Moscu
Mensajes: 42
Antigüedad: 8 años, 1 mes
Puntos: 4
Respuesta: error en trigger

Cual es tarea? Arreglar campo Puesto a "GERENCIA" donde CodigoOficina es 45200? Puedo realizar en esta transacción despues update Empleados.
  #5 (permalink)  
Antiguo 07/06/2016, 13:43
Avatar de AVBorland  
Fecha de Ingreso: marzo-2016
Ubicación: Moscu
Mensajes: 42
Antigüedad: 8 años, 1 mes
Puntos: 4
Respuesta: crear trigger en oracle

Cita:
Iniciado por crash_16109 Ver Mensaje
Código SQL:
Ver original
  1. CREATE OR REPLACE TRIGGER ActualizarEmpleado
  2.  BEFORE UPDATE OF Puesto
  3.  ON Empleados
  4.  FOR each ROW
  5.  BEGIN
  6.  UPDATE Puesto
  7. SET Puesto='GERENCIA'
  8. WHERE CodigoOficina='45200';
Tambien, prueba usted update tabla y realiza trigger antes update esta tabla. Update - before update - before update... hasta lo infinita. Ese mucho extraño

Última edición por gnzsoloyo; 07/06/2016 a las 14:46

Etiquetas: ayuda-general, 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 01:24.