HOLA ESTOY TENIENDO PROBLEMITAS POSIBLEMENTE DE SINTAXIS CON UN TRIGGER EN ORACLE
LO QUE TENGO QUE HACER ES QUE CUANDO SE MODIFIQUE LA TABLA "GENERADORES" SE CREE UN REGISTRO EN LA TABLA "MANTENIMIENTO" CON GUARDANDO LA DESCRIPCION CON EL TEXTO  ANTIGUA CAPACIDAD:‟ + CAPACIDAD VIEJA +  NUEVA CAPACIDAD:‟ + CAPACIDAD NUEVA
NO SE SI ES UN PRBLEMA DE CONCATENAS O QUE, PERO ME SALTA ERROR AL MOMENTO DE COMPILARLO:
TRIGGER TG_PUNTO_B AFTER UPDATE ON GENERADORES  
BEGIN
INSERT INTO MANTENIMIENTO (numMant, codGen, fchMant, dscMant) 
VALUES (seq_numMant.NextVal, :new.codGen, SYSDATE, 'Antigua capacidad: ' :old.KWGEN ' Nueva capacidad: ' :new.KWGEN);
END;
Error que empieza en la línea 1 del comando:
TRIGGER TG_PUNTO_B AFTER UPDATE ON GENERADORES  
Informe de error:
Comando desconocido
La variable de enlace "new" no está declarada
bloque anónimo terminado
HELP!
			
			
			
				Hola
Lo primero de todo decirte que no escribas en mayúsculas, léete las normas
Acabo de leer esto que creo que soluciona tu problema
Citar
Por defecto todos los disparadores son de tipo for each statement, de manera que se ejecutan una sola vez, antes o después de la instrucción que lanza su ejecución. Existen dos variables externas old y new que almacenan respectivamente los valores de cada tupla antes y después de ejecutar sobre ella la instrucción que lanza al disparador. Sin embargo, estas variables solamente se pueden utilizar cuando se escoge la opción de ejecutar el disparador una vez por cada tupla (for each row), es decir ejecutarlo separadamente para cada una de las tuplas afectadas por la instrucción SQL que ha activado al disparador. En este caso la cláusula optativa WHEN sirve para especificar una condición adicional que debe cumplir una tupla afectada por el disparador para que éste sea ejecutado sobre ella.
Saludos
			
 
			
			
				seria algo asi:
CREATE OR REPLACE TRIGGER TG_PUNTO_B
  AFETER UPDATE ON generadores
  FOR EACH ROW
BEGIN
  BEGIN
     INSERT 
       INTO mantenimiento (numMant, codGen, fchMant, dscMant)
     VALUES (seq_numMant.NextVal, :new.codGen, SYSDATE, 'Antigua capacidad: ' :old.KWGEN ' Nueva capacidad: ' :new.KWGEN);
  EXCEPTION
     WHEN OTHERS THEN
       Raise_Application_Error(-20000, 'Error al actualizar ' || SQLERRM);
  END;
  
END;
Saludos!