-- TRIGGER
-- TRIGGER 3 CiclomotoreOccupato
CREATE OR REPLACE TRIGGER AuditingInserimentoAssistenz
BEFORE INSERT OR UPDATE OF TARGA ON ASSISTENZA
FOR EACH ROW
DECLARE
dispCiclom DATE;
eccezioneCiclom EXCEPTION;
BEGIN
SELECT DISPONIBILITA INTO dispCiclom FROM CICLOMOTORE;
IF dispCiclom>:NEW.INIZIO_ASS THEN
RAISE eccezioneCiclom;
END IF;
EXCEPTION
WHEN eccezioneCiclom THEN
RAISE_APPLICATION_ERROR(-20022,'---- ERRORE!! CICLOMOTORE AL MOMENTO E'' IMPEGNATO, SCEGLIERE ALTRO CICLOMOTORE ----');
END;
/
PROBLEMA: IL TRIGGER VIENE COMPILATO SENZA ERRORI, PERO' NON FUNZIONA!
IL CONTROLLO SULLE DATE NON AVVIENE MAI, E L'INSERIMENTO QUINDI C'E' SEMPRE.
L'INSERIMENTO DOVREBBE ESSERE VIETATO SE LA DISPONIBILITA' DEL MEZZO E' POSTERIORE ALLA DATA DI INIZIO DI UNA NUOVA ASSISENZA INSERITA. INVECE IL RISULTATO E' CHE NON VIENE VIETATO PER DISPONIBILITA'.CICLOMOTORE > INIZIO_ASS.ASSISTENZA E NON GENERA NEANCHE L'ERRORE.
SBAGLIO NEL CONFRONTO DELLE DATE? O IN COSA?