Código:
SQL> DECLARE
2 numero EMPLE.EMP_NO%TYPE;
apellido EMPLE.APELLIDO%TYPE;
puesto EMPLE.OFICIO%TYPE;
jefe EMPLE.DIR%TYPE;
fecha EMPLE.FECHA_ALT%TYPE;
salario EMPLE.SALARIO%TYPE;
comision EMPLE.COMISION%TYPE;
dep EMPLE.DEPT_NO%TYPE;
duplicado_no_emp EXCEPTION;
5 BEGIN
6 SELECT MAX(EMP_NO) INTO num_emple FROM EMPLE;
7 SELECT SYSDATE INTO fecha FROM DUAL;
apellido := 'VAZQUEZ';
puesto := 'VENDEDOR';
jefe := '7698';
salario := '1200';
comision := '200';
8 dep := 20;
9 num_emple := num_emple +1;
10 INSERT INTO EMPLE
VALUES (numero, apellido, puesto,jefe,fecha,salario,comision,dep);
IF numero IN SELECT EMP_NO FROM EMPLE;
RAISE duplicado_no_emp;
END IF;
IF jefe = NULL
RAISE no_dir;
END IF;
EXCEPTION
WHEN duplicado_no_em THEN
dbms_output.put_line('Número de empleado no puede estar duplicado');
WHEN no_dir THEN
dbms_output.put_line('¡Todo empleado tiene que tener jefe!');
END;
/
Otra duda que tengo, se supone que tengo que sacar de una tabla los dos empleados que mas cobran por oficio, he conseguido esto:
Código:
SQL> SELECT MIN(SALARIO), DEPT_NO FROM EMPLE GROUP BY DEPT_NO;
Alguien me podría ayudar?
En cuanto resuelva el resto les subo por si a alguien le sirven
Un saludo y gracias de antemano