Alex9303
08-07-2015, 19:22
Ragazzi sto impazzendo xD devo fare un trigger per non far inserire un'altra ispezione nella tabella ispettori. Me lo crea il trigger per quando vado ad inserire la riga. Mi riporta l'errore che sta in foto. :(
CREATE OR REPLACE TRIGGER T6BEFORE INSERT ON ISPETTORI
FOR EACH ROW
DECLARE
SETT CHAR;
ANNO CHAR;
CONTROLLO_EFFETTUATO EXCEPTION;
BEGIN
SELECT TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'YEAR') into ANNO FROM ISPETTORI;
SELECT TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'WW') INTO SETT FROM ISPETTORI;
IF ((ANNO=TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'YEAR')) AND (SETT=TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'WW'))) THEN
RAISE CONTROLLO_EFFETTUATO;
END IF;
EXCEPTION
WHEN CONTROLLO_EFFETTUATO THEN
RAISE_APPLICATION_ERROR(-20010,'Controllo gia effettuato');
END;
L'insert di ispettori:
INSERT INTO ISPETTORI(COD_F,DATA_ISPEZIONE,NOME_ISP,COGNOME_ISP,SETTORE)
VALUES('0000000000000001',TO_DATE('10/07/2015','DD/MM/YYYY'),'MANUELA','BOH','SETTORE M')
Table:
CREATE TABLE ISPETTORI( COD_F CHAR(16) PRIMARY KEY,
DATA_ISPEZIONE DATE,
NOME_ISP VARCHAR(20),
COGNOME_ISP VARCHAR(20),
SETTORE VARCHAR(20));
CREATE OR REPLACE TRIGGER T6BEFORE INSERT ON ISPETTORI
FOR EACH ROW
DECLARE
SETT CHAR;
ANNO CHAR;
CONTROLLO_EFFETTUATO EXCEPTION;
BEGIN
SELECT TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'YEAR') into ANNO FROM ISPETTORI;
SELECT TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'WW') INTO SETT FROM ISPETTORI;
IF ((ANNO=TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'YEAR')) AND (SETT=TO_CHAR(TO_DATE(:NEW.DATA_ISPEZIONE,'MM/DD/YYYY'),'WW'))) THEN
RAISE CONTROLLO_EFFETTUATO;
END IF;
EXCEPTION
WHEN CONTROLLO_EFFETTUATO THEN
RAISE_APPLICATION_ERROR(-20010,'Controllo gia effettuato');
END;
L'insert di ispettori:
INSERT INTO ISPETTORI(COD_F,DATA_ISPEZIONE,NOME_ISP,COGNOME_ISP,SETTORE)
VALUES('0000000000000001',TO_DATE('10/07/2015','DD/MM/YYYY'),'MANUELA','BOH','SETTORE M')
Table:
CREATE TABLE ISPETTORI( COD_F CHAR(16) PRIMARY KEY,
DATA_ISPEZIONE DATE,
NOME_ISP VARCHAR(20),
COGNOME_ISP VARCHAR(20),
SETTORE VARCHAR(20));