Oracle - 5. Modifique la tabla empleados añadiendo el campo salario (integer). Añadirle un valor por defecto

 
Vista:

5. Modifique la tabla empleados añadiendo el campo salario (integer). Añadirle un valor por defecto

Publicado por bertag (1 intervención) el 07/09/2017 02:30:33
hola buenas noches..\

estoy en un proyecto

y tengo esta sentencia////

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Set SERVEROUTPUT ON;
declare
 
cursor c_manager is select * from emp where job= 'MANAGER';
cursor c_president is select * from emp where job= 'PRESIDENT';
cursor c_Analyst is select * from emp where job= 'ANALYST';
cursor c_salesman is select * from emp where job= 'SALESMAN';
 
begin
 
DBMS_OUTPUT.PUT_LINE('--MANAGER--');
for varcont in c_manager loop
DBMS_OUTPUT.PUT_LINE(varcont.ename);
end loop;
 
DBMS_OUTPUT.PUT_LINE('--PRESIDENT--');
for varcontpre in c_president loop
DBMS_OUTPUT.PUT_LINE(varcontpre.ename);
end loop;
 
DBMS_OUTPUT.PUT_LINE('--ANALYST--');
for varcontpre in c_analyst loop
DBMS_OUTPUT.PUT_LINE(varcontpre.ename);
end loop;
 
DBMS_OUTPUT.PUT_LINE('--SALESMAN--');
for varcontpre in c_salesman loop
DBMS_OUTPUT.PUT_LINE(varcontpre.ename);
end loop;
end;

------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE OR REPLACE TRIGGER TR_VALIDAR_JEFES
BEFORE
INSERT ON EMPLEADOS
FOR EACH ROW
DECLARE
NumEmpSupervisados INTEGER;
BEGIN
SELECT count (*) INTO NumEmpSupervisados
FROM EMPLEADOS
WHERE cojefe = :new.cojefe;
IF NumEmpSupervisados > 4 THEN
raise_application_error (-20600, :new.cojefe || 'NO SE PUEDE SUPERVISAR MAS DE 5');
END IF;
 
END;

------

1
2
3
4
5
6
7
8
create TABLE EMPLEADOS
(
 
dni char(4),
nomemp varchar2(15),
COJEFE char(4),
PRIMARY KEY (dni)
);

-------

1
2
3
4
5
6
7
8
INSERT INTO EMPLEADOS (DNI,NOMEMP,COJEFE)
    VALUES ('D1','Director',null);
    INSERT INTO empleados VALUES ('D2','D.Comercial','D1');
INSERT INTO empleados VALUES ('D3','D.Producción','D1');
INSERT INTO empleados VALUES ('D4','Jefe Ventas','D1');
INSERT INTO empleados VALUES ('D5','Jefe Marketing','D1');
INSERT INTO empleados VALUES ('D6','Vendedor 2','D1');
INSERT INTO empleados VALUES ('D7','Vendedor 3','D1');

--------

1
SELECT cojefe, count(*) FROM empleados GROUP BY cojefe;

-----MODIFICANDO TABLA EMPLEADO--


(QUISIERA REALIZAR LO SIGUIENTE:


5. Modifique la tabla empleados añadiendo el campo salario (integer). Añadirle un valor por defecto para dicho campo.
ALTER TABLE EMPLEADOS ADD salario INTEGER DEFAULT 1000;

6. Crear un TRIGGER para impedir que se aumente el salario de un empleado en más de un 20%. Es necesario comparar los valores :old.salario y :new.salario cuando se modifica (BEFORE UPDATE).

O sea; IF :NEW.salario > :OLD.salario*1.20 THEN raise…
El mensaje de error debe ser: el aumento máximo es de un 20%...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

5. Modifique la tabla empleados añadiendo el campo salario (integer). Añadirle un valor por defecto

Publicado por Jose (17 intervenciones) el 07/09/2017 19:22:05
No me queda claro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar