
Duda trigger - impedir el insert si es menor de edad
Publicado por wirfen (1 intervención) el 18/05/2013 10:07:23
Buenas, llevamos varios dias intentando corregir unos triggers y no hay manera.
Queremos hacer un trigger que impida insertar un empleado en la base de datos que sea menor de edad, disponemos de su fecha de nacimiento para calcular la edad y este es nuestro trigger.
Nuestra tabla se compone por empleados(dni_e,nombre,apellidos,direccion,fecha_nacimiento,fecha_alta,login,contraseña,correo,telefono)
Espero nos puedan ayudar, llevamos dias sin encontrar el error.
Queremos hacer un trigger que impida insertar un empleado en la base de datos que sea menor de edad, disponemos de su fecha de nacimiento para calcular la edad y este es nuestro trigger.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
create or replace TRIGGER MAYORIAEDAD
BEFORE
INSERT ON EMPLEADOS
FOR EACH ROW
DECLARE
EDAD INTEGER;
NOMBR VARCHAR2(30);
BEGIN
SELECT ((EMPLEADOS.FECHA_NACIMIENTO - SYSDATE) / 365) INTO EDAD
FROM EMPLEADOS;
SELECT NOMBRE INTO NOMBR FROM EMPLEADOS WHERE EDAD<18.0;
IF (EDAD<18.0)
THEN RAISE_APPLICATION_ERROR (-20600,NOMBR||'TIENE QUE SER MAYOR DE EDAD');
END IF;
END;
Nuestra tabla se compone por empleados(dni_e,nombre,apellidos,direccion,fecha_nacimiento,fecha_alta,login,contraseña,correo,telefono)
Espero nos puedan ayudar, llevamos dias sin encontrar el error.
Valora esta pregunta


0