This shows you the differences between two versions of the page.
bd2:laboratoare:05 [2020/11/01 18:32] apetrescu0506 [Proceduri declarate în cadrul unui bloc] |
bd2:laboratoare:05 [2020/11/05 13:27] (current) ciprian.truica [Laboratorul 05 - PL/SQL Subprograme] |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Laboratorul 05 - PL/SQL Subprograme ===== | ===== Laboratorul 05 - PL/SQL Subprograme ===== | ||
- | Exercitii date spre rezolvare: {{bd2:laboratoare:lab05_-_luni10-14.txt | Enunt/Rezolvare pentru Luni EG305 10-14}} | + | |
===== Conținut ===== | ===== Conținut ===== | ||
Line 137: | Line 137: | ||
* **[PRAGMA AUTONOMOUS_TRANSACTION]** – specifică că execuția procedurii suspendă tranzacția curentă care se reia după terminarea execuției procedurii, adică într-o tranzacție imbricăm o altă tranzacție cu propriile sale comenzi TCL (COMMIT și ROLLBACK) | * **[PRAGMA AUTONOMOUS_TRANSACTION]** – specifică că execuția procedurii suspendă tranzacția curentă care se reia după terminarea execuției procedurii, adică într-o tranzacție imbricăm o altă tranzacție cu propriile sale comenzi TCL (COMMIT și ROLLBACK) | ||
- | <color red>Ex. 3.</color> Să se creeze o procedură stocată care calculează veniturile angajaților cu o vechime de peste 20 de ani în firmă, dintr-un anumit departament. | + | <color red>Ex. 3.</color> Să se creeze o procedură stocată care calculează veniturile angajaților cu o vechime de peste 10 de ani în firmă, dintr-un anumit departament. |
{{:bd2:laboratoare:l05ex03.png?nolink&730|}} | {{:bd2:laboratoare:l05ex03.png?nolink&730|}} | ||
Line 157: | Line 157: | ||
<color red>Ex. 4.</color> Să se scrie o procedură nestocată, care utilizează un cursor, pentru calculul numărului de zile de concediu pentru toți angajații, după următorul algoritm: | <color red>Ex. 4.</color> Să se scrie o procedură nestocată, care utilizează un cursor, pentru calculul numărului de zile de concediu pentru toți angajații, după următorul algoritm: | ||
- manageri de departament: | - manageri de departament: | ||
- | * Vechimea < 32 de ani primesc 20 zile de concediu | + | * Vechimea < 13 de ani primesc 20 zile de concediu |
- | * Vechimea >= 32 de ani primesc 22 zile de concediu | + | * Vechimea >= 13 de ani primesc 22 zile de concediu |
- angajații care nu sunt șefi: | - angajații care nu sunt șefi: | ||
- | * Vechimea < 32 de ani primesc 15 zile de concediu | + | * Vechimea < 13 de ani primesc 15 zile de concediu |
- | * Vechimea >= 32 de ani primesc 22 zile de concediu | + | * Vechimea >= 13 de ani primesc 22 zile de concediu |
{{:bd2:laboratoare:l05ex04.png?nolink&730|}} | {{:bd2:laboratoare:l05ex04.png?nolink&730|}} | ||
Line 181: | Line 181: | ||
<color red>Ex. 6.</color> Să se creeze un vector fie la nivelul dicționarului de date, fie local. Într-un bloc, să se definească și inițializeze o variabilă de tipul nou creat și să se apeleze o procedură care afișează valorile elementelor. Să se șteargă tipul din dicționarul de date. | <color red>Ex. 6.</color> Să se creeze un vector fie la nivelul dicționarului de date, fie local. Într-un bloc, să se definească și inițializeze o variabilă de tipul nou creat și să se apeleze o procedură care afișează valorile elementelor. Să se șteargă tipul din dicționarul de date. | ||
- | | {{:bd2:laboratoare:l05ex06a.png?nolink&730|}} | {{:bd2:laboratoare:l05ex06b.png?nolink&730|}} | | + | {{:bd2:laboratoare:l05ex06a.png?nolink&730|}} |
- | | {{:bd2:laboratoare:l05ex06c.png?nolink&730|}} | {{:bd2:laboratoare:l05ex06d.png?nolink&730|}} | | + | |
- | | {{:bd2:laboratoare:l05ex06e.png?nolink&730|}} | | + | {{:bd2:laboratoare:l05ex06b.png?nolink&730|}} |
+ | |||
+ | {{:bd2:laboratoare:l05ex06c.png?nolink&730|}} | ||
+ | |||
+ | {{:bd2:laboratoare:l05ex06d.png?nolink&730|}} | ||
+ | |||
+ | {{:bd2:laboratoare:l05ex06e.png?nolink&730|}} | ||
Line 189: | Line 195: | ||
<color red> Ex. 7. </color> Exemplu de cursor ca parametru. | <color red> Ex. 7. </color> Exemplu de cursor ca parametru. | ||
- | | {{:bd2:laboratoare:l05ex07a.png?nolink&730|}} | {{:bd2:laboratoare:l05ex07b.png?nolink&730|}} | | + | |
- | | {{:bd2:laboratoare:l05ex07c.png?nolink&730|}} | | + | {{:bd2:laboratoare:l05ex07a.png?nolink&730|}} |
+ | |||
+ | {{:bd2:laboratoare:l05ex07b.png?nolink&730|}} | ||
+ | |||
+ | {{:bd2:laboratoare:l05ex07c.png?nolink&730|}} | ||
Line 397: | Line 407: | ||
{{:bd2:laboratoare:l05s3.png?nolink&730|}} | {{:bd2:laboratoare:l05s3.png?nolink&730|}} | ||
- | |||
- | <color red>Ex. 10. </color> Să se scrie o funcție vare calculează impozitul pe venit în funcție de gradul de salarizare (gradul se găsește în tabela SALGRADE), folosindu-se următorul algoritm: | ||
- | * Dacă grade = 1 atunci impozitul este 10% din venit | ||
- | * Dacă grade = 2 atunci impozitul este 15% din venit | ||
- | * Dacă grade = 3 atunci impozitul este 20% din venit | ||
- | * Dacă grade = 4 atunci impozitul este 25% din venit | ||
- | * Dacă grade = 5 atunci impozitul este 30% din venit | ||
- | Să se afișeze numele angajatului, dacă este șef de departament sau nu, gradul de salarizare, procentul, venitul și impozitul. | ||
- | |||
- | {{:bd2:laboratoare:l05ex10.png?nolink&730|}} | ||