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

Hola dani.
Veo que ahora estás usando la select que te dije...
Muy bien, peeeeeeeeero, si la usas, tendrás qeu usar las variables qeu en ella te indicaba. (Léase la variable contador)

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,'dd/mm/yyyy')= to_char(:new id_fecha, 'dd/mm/yyyy');
END;
Pero hecho esto lo unico que consigues es saber si existe un producto que cumple eso.
Ahora te falta la cláusula IF para tratar el error. (tal y como tenias)

Todo junto seria algo asi:

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,'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;
A ver si ahora te va bien!!!!

ya nos dices