Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL»
Línia 9: | Línia 9: | ||
Num_empleats NUMBER(3)); | Num_empleats NUMBER(3)); | ||
</pre> | </pre> | ||
− | a) Crea una funció que a partir d'un número de departament ens retorni el manager_id. | + | a) Crea una funció que a partir d'un número de departament ens retorni el manager_id. En cas de que no existeixi el número de departament utilitza el procediment RAISE_APPLICATION_ERROR per generar una excepció amb el codi -20215 i missatge: 'No existeix aquest departament!!'. |
− | + | <!-- | |
+ | <pre> | ||
+ | CREATE OR REPLACE FUNCTION cap(p_dept DEPARTMENTS.DEPARTMENT_ID%TYPE) | ||
+ | RETURN NUMBER | ||
+ | IS | ||
+ | v_manager DEPARTMENTS.MANAGER_ID%TYPE; | ||
+ | BEGIN | ||
+ | SELECT manager_id | ||
+ | INTO v_manager | ||
+ | FROM departments | ||
+ | WHERE department_id = p_dept; | ||
+ | RETURN v_manager; | ||
+ | EXCEPTION | ||
+ | WHEN NO_DATA_FOUND THEN | ||
+ | RAISE_APPLICATION_ERROR (-20215, 'No existeix aquest departament!!'); | ||
+ | END; | ||
+ | </pre> | ||
+ | --> | ||
b) En un bloc PL/SQL crea un cursor que recuperi tots els empleats ordenats per departament i recorre'l per omplir la taula CAPS convenientment. | b) En un bloc PL/SQL crea un cursor que recuperi tots els empleats ordenats per departament i recorre'l per omplir la taula CAPS convenientment. | ||
Revisió del 21:19, 18 març 2019
Esquema HR
1.- Crea una taula CAPS (CREATE TABLE) que contingui els següent camps: Nom_Department, First_Name, Last_Name i Num_empleats.
CREATE TABLE CAPS( Nom_Department VARCHAR2(30) PRIMARY KEY, First_Name VARCHAR2(20), Last_Name VARCHAR2(250), Num_empleats NUMBER(3));
a) Crea una funció que a partir d'un número de departament ens retorni el manager_id. En cas de que no existeixi el número de departament utilitza el procediment RAISE_APPLICATION_ERROR per generar una excepció amb el codi -20215 i missatge: 'No existeix aquest departament!!'. b) En un bloc PL/SQL crea un cursor que recuperi tots els empleats ordenats per departament i recorre'l per omplir la taula CAPS convenientment.
2.- Fes un bloc PL/SQL que crei una taula indexada per job_title i crea un cursor que recuperi tots els empleats ordenats per departament i recorre'l per omplir la taula amb la següent informació: número d'empleats que tenen aquest ofici i el número de departaments que tenen aquest ofici. Mostra el resultat.
3.- Utilitzant dos cursors, un que recuperi els departaments i un segon parametritzat que a partir d'un department_id recupera els empleats, fes el següent informe:
- EMPLEATS PER DEPARTAMENT - Departament: <nom del departament> Cap: <nom i cognom del cap del departament> Empleats <nom i cognom dels empleats> - - - - - - - - - - - - - - - - - - - - Departament: <nom del departament> Cap: <nom i cognom del cap del departament> Empleats <nom i cognom dels empleats>
Esquema SCOTT ampliat