Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF3: PL-SQL-2»
(→Creació de funcions i depuració de subprogrames) |
(→Creació de funcions i depuració de subprogrames) |
||
Línia 55: | Línia 55: | ||
==Creació de funcions i depuració de subprogrames== | ==Creació de funcions i depuració de subprogrames== | ||
− | En | + | '''1.-''' En aquesta pràctica, crearàs, compilaràs i utilitzaràs funcions emmagatzemades i un procediment: |
:* Una funció anomenada GET_JOB per retornar un càrrec. | :* Una funció anomenada GET_JOB per retornar un càrrec. | ||
Línia 61: | Línia 61: | ||
:* Un procediment anomenat ADD_EMPLOYEE per afegir un nou empleat en la taula EMPLOYEES. | :* Un procediment anomenat ADD_EMPLOYEE per afegir un nou empleat en la taula EMPLOYEES. | ||
− | En | + | :1) |
+ | |||
+ | ::a) | ||
+ | |||
+ | ::b) | ||
+ | |||
+ | :2) | ||
+ | |||
+ | ::a) | ||
+ | |||
+ | ::b) | ||
+ | |||
+ | :3) | ||
+ | |||
+ | ::a) | ||
+ | |||
+ | ::b) | ||
+ | |||
+ | ::c) | ||
+ | |||
+ | ::d) | ||
+ | |||
+ | '''2.-''' En aquesta pràctica, es presentarà la funcionalitat bàsica del depurador de SQL Developer: | ||
:* Crea un procediment i una funció. | :* Crea un procediment i una funció. | ||
Línia 73: | Línia 95: | ||
− | |||
− | + | ||
[[Imatge:M2UF3_CCC_1.png |500px|center| Creació, compilació crida de procediments]] | [[Imatge:M2UF3_CCC_1.png |500px|center| Creació, compilació crida de procediments]] |
Revisió del 13:04, 19 abr 2016
Creació de procediments
En aquesta pràctica, crearà, compilarà i farà crides a procediments que emeten ordres DML i de consulta. També aprendrà a manegar excepcions en els procediments.
Nota: si no ha realitzat un pas d'una pràctica, execute el script de solucions adequat del pas de la pràctica abans de continuar amb el següent pas o amb la següent pràctica.
En aquesta pràctica, crearà i cridarà al procediment ADD_JOB, a més a més de revisar el resultat. També crearà i cridarà a un procediment anomenat UPD_JOB per modificar un treball en la taula JOBS; tanmateix, crearà i cridarà a un procediment anomenat DEL_JOB per suprimir un treball de la taula JOBS. Per últim, crearà un procediment anomenat GET_EMPLOYEE per consultar la taula EMPLOYEES, que retorna el salari i l'identificador de treball d'un empleat quan es proporciona l'identificador de l'empleat.
1.- Crea, compila i crida al procediment ADD_JOB i revisa el resultat.
- a) Crea un procediment anomenat ADD_JOB per afegir un nou treball en la taula JOBS. Proporciona l'identificador i el càrrec utilitzant dos paràmetres.
- Nota: pots crear el procediment (així com altres objectes) mitjançant la introducció del codi en l'àre SQL Worksheet i, a continuació, fer clic en l¡icona Run Script (F5). De aquesta forma, es crea i compila el procediment. Per saber si el procediment conté o no errors, fes clic en el nom del mateix en el node de procediments i, a continuació, selecciona Compile en el menú emergent.
- b) Crida al procediment amb IT_DBA com a identificadro del treball i Database Administrator com a càrrec. Consulta la taula JOBS i mira el resultat.
- c) Crida al procediment de nou i passa-li com a identificador de treball ST_MAN i un càrrec Stock Manager. Què succeïx? Per què?
2.- Crea un procediment anomenat UPD_JOB per modificar un treball en la taula JOBS.
- a) Crea un procediment anomenat UPD_JOB per actualitzar el càrrec. Proporciona el identificador de treball i un càrrec nou utilitzant dos paràmetres. Inclou el manegador d'excepcions necessari si no s'ha produït l'actualització.
- b) Crida al procediment per canviar el càrrec de l'identificador de treball IT_DBA a Data Administrador. Consulta la taula JOBS i mira el resultat.
- c) Prova la secció del manegador d'excepcions del procediment intentant actualitza un treball que no existeixi. Pots utilitzar l'identificador de treball IT_WEB i el càrrec Web Master.
3.- Crea un procediment anomenat DEL_JOB per suprimir un treball de la taula JOBS.
- a) Crea un procediment anomenat DEL_JOB per suprimir un treball. Inclou el codi de manegador d'excepcions necessari si no s'ha suprimit cap treball.
- b) Crida al procediment mitjançant l'identificador de treball IT_DBA. Consulta la taula JOBS i mira el resultat.
- c) Prova la secció del manegador d'excepcions del procediment intentant suprimir un treball que no existeixi. Utilitza IT_WEB com a identificador de treball. Apareixerà el missatge que has inclòs en la secció del manegador d'excepcions del procediment com a sortida.
4.- Crea un procediment anomenat GET_EMPLOYEE per consultar la taula EMPLOYEES, que retorni el salari i l'identificador de treball d'un empleat quan es proporciona el identificador de l'empleat.
- a) Crea un procediment que retorni un valor de les columnes SALARY i JOB_ID per l'identificador d'empleat especificat. Elimina els errors de sintaxi, si n'hi ha i, a continuació, recompila el codi.
- b) Executa el procediment utilitzant les variables del host per als dos paràmetres OUT: una per al salari i l'altre per l'identificador de treball. Mostra el salari i l'identificador de treball per a l'identificador de empleat 120.
- c) Crida al procediment de nou amb un EMPLOYEE_ID 300. Què succeïx? Per què?
Creació de funcions i depuració de subprogrames
1.- En aquesta pràctica, crearàs, compilaràs i utilitzaràs funcions emmagatzemades i un procediment:
- Una funció anomenada GET_JOB per retornar un càrrec.
- Una funció anomenada GET_ANNUAL_COMP per retornar el salari anual de un empleat calculat a partir del salari mensual i la comissió transferits com a paràmetres.
- Un procediment anomenat ADD_EMPLOYEE per afegir un nou empleat en la taula EMPLOYEES.
- 1)
- a)
- b)
- 2)
- a)
- b)
- 3)
- a)
- b)
- c)
- d)
2.- En aquesta pràctica, es presentarà la funcionalitat bàsica del depurador de SQL Developer:
- Crea un procediment i una funció.
- Afegeix punts de divisió en el procediment creat.
- Compila el procediment i la funció per al mode de depuració.
- Depura el procediment i desplaçat a la primera línia executable del codi.
- Mostra i modifica les variables dels subprogrames.
Nota: si no has realitzat un pas d'una pràctica, executa el sript de solucions adequat d'aquest pas del pràctica abans de continuar amb el següent pas o amb la següent pràctica.