Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/05/2009, 04:07
javi_cassi
 
Fecha de Ingreso: enero-2008
Mensajes: 268
Antigüedad: 16 años, 10 meses
Puntos: 11
Respuesta: Ayuda con triggers

Hola Dani, siento decirte qeu no uso el messenger.
Lo tengo, pero me obliga a instalar la ultima version, y me da muchas pereza (aunque algún dia tendre qeu hacerlo....)

Respecto a lo que me ddices, efectivamente no es lo qeu buscas, ya que lo que estamso buscando en la select que hacemos, son aquellos productos cuya fecha sea igual a la introducida.

para arreglarlo, basta con poner la condicion que te falta.
Seria esto:

Cita:
CREATE or replace trigger tarifas_concurrentes
before insert on tarifas_djg
for each row
DECLARE
inicial date;
contador number;
BEGIN
SELECT count(1) into contador
FROM tarifas_djg a
WHERE a.id_producto = :new id_producto
and to_char(a.fecha_inicio,'dd/mm/yyyy')< to_char(:new id_fecha, 'dd/mm/yyyy')
and to_char(a.fecha_fin,'dd/mm/yyyy')> to_char(:new id_fecha, 'dd/mm/yyyy')

if contador>0 then
--si es >0 quiere decir que existe algun registro que cumple eso, por lo tanto
raise_application_Error(-20001,'tarifas concurrentes');
end if;
END;
si te das cuenta, hemos puesto una nueva condicion (y cambiado la anterior)
Ahora nos interesa buscar aquellos registros que cumplen que la fecha de inicio es menor que la introducida, y la fecha fin es mayor que la introducida. (es decir, que la introducida esté entre medias)
Si existe registro que cumple esto, PEEEEEEEEEEEEEEEEEEEE, error.

A ver qué tal ahora