Oracle
 sql >> Database >  >> RDS >> Oracle

Scatti di prevenzione

Hai una data di nascita. Quindi è necessario determinare che il DoB sia almeno sedici anni prima di oggi. Ci sono vari modi per farlo; eccone uno che usa un intervallo letterale.

create or replace trigger students_biur
     before insert or update on students for each row 
begin
    if (:new.student_birthdate + INTERVAL '15' YEAR ) < sysdate
    then 
         raise_application_error( -20000, 'This student is too young be registered.');     
    end if;
end; 

Questo trigger verifica anche la presenza di aggiornamenti, per evitare che modifiche successive invalidino uno studente.

Il nome del trigger students_biur è solo una convenzione che uso:il nome della tabella con un suffisso che indica *B*efore *I*nsert *U*pdate per ogni *R*ow.

RAISE_APPLICATION_ERROR è una procedura standard per generare eccezioni definite dall'utente con un messaggio. Scopri di più.

Oracle riserva l'intervallo da -20999 a -20000 per gli errori definiti dall'utente; qualsiasi altro numero può scontrarsi con un'eccezione definita da oracolo.