This shows you the differences between two versions of the page.
bdd:laboratoare:06 [2024/10/07 11:27] 127.0.0.1 external edit |
bdd:laboratoare:06 [2024/10/07 14:39] (current) ciprian.truica |
||
---|---|---|---|
Line 83: | Line 83: | ||
<color red>Ex. 1</color> Să se scrie un pachet p_angajare, care conține o funcție și o procedură, pentru a face o listă cu angajații care au comision și au venit în firmă înaintea șefului direct. Șeful direct al unui angajat este specificat în coloana manager_id. Procedura va afișa rezultatele. | <color red>Ex. 1</color> Să se scrie un pachet p_angajare, care conține o funcție și o procedură, pentru a face o listă cu angajații care au comision și au venit în firmă înaintea șefului direct. Șeful direct al unui angajat este specificat în coloana manager_id. Procedura va afișa rezultatele. | ||
- | {{:bdd:laboratoare:l06ex01.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex01.png?nolink&740|}} |
==== Restricții ==== | ==== Restricții ==== | ||
Line 92: | Line 92: | ||
<color red>Ex. 2 </color> Exemplu de ambiguitate: | <color red>Ex. 2 </color> Exemplu de ambiguitate: | ||
- | {{:bdd:laboratoare:l06ex02.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex02.png?nolink&740|}} |
Line 110: | Line 110: | ||
<color red>Ex. 3. </color> Exemplu de utilizarea a unei variabile publice. | <color red>Ex. 3. </color> Exemplu de utilizarea a unei variabile publice. | ||
- | {{:bdd:laboratoare:l06ex03.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex03.png?nolink&740|}} |
O variabilă locală (privată) poate fi folosită pentru a inițializa un parametru al unei subprogram local (privat) și în interiorul subprogramelor (private/publice). | O variabilă locală (privată) poate fi folosită pentru a inițializa un parametru al unei subprogram local (privat) și în interiorul subprogramelor (private/publice). | ||
Line 116: | Line 116: | ||
<color red>Ex. 4. </color> Exemplu de utilizarea a unei variabile private. | <color red>Ex. 4. </color> Exemplu de utilizarea a unei variabile private. | ||
- | {{:bdd:laboratoare:l06ex04.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex04.png?nolink&740|}} |
==== Informații din dicționarul bazei de date ==== | ==== Informații din dicționarul bazei de date ==== | ||
Line 334: | Line 334: | ||
<color red>Ex. 5</color> Să se scrie un trigger de tip BEFORE care printează un mesaj ori de câte ori se face un insert în tabela JOBS. | <color red>Ex. 5</color> Să se scrie un trigger de tip BEFORE care printează un mesaj ori de câte ori se face un insert în tabela JOBS. | ||
- | {{:bdd:laboratoare:l06ex05.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex05.png?nolink&740|}} |
Să verificăm cum lucrează făcând un insert în tabela JOBS: | Să verificăm cum lucrează făcând un insert în tabela JOBS: | ||
Line 366: | Line 366: | ||
<color red>Ex. 6</color> Să se creeze un trigger de tip AFTER care afișează un mesaj ori de câte ori se face o modificare în tabela JOBS. | <color red>Ex. 6</color> Să se creeze un trigger de tip AFTER care afișează un mesaj ori de câte ori se face o modificare în tabela JOBS. | ||
- | {{:bdd:laboratoare:l06ex06.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex06.png?nolink&740|}} |
Să verificăm cum lucrează triggerul făcând o modificare a salariului maxim în tabelul JOBS: | Să verificăm cum lucrează triggerul făcând o modificare a salariului maxim în tabelul JOBS: | ||
Line 401: | Line 401: | ||
<color red>Ex. 7</color> Să se scrie un trigger de tip AFTER care se declanșează dacă salariul unui angajat cu funcția 'SH_CLERK' este majorat. | <color red>Ex. 7</color> Să se scrie un trigger de tip AFTER care se declanșează dacă salariul unui angajat cu funcția 'SH_CLERK' este majorat. | ||
- | {{:bdd:laboratoare:l06ex07.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex07.png?nolink&740|}} |
Line 426: | Line 426: | ||
<color red>Ex. 8</color> Să se scrie un trigger de tip AFTER care se declanșează în momentul în care se face un insert, delete sau update pe coloanele SALARY și COMMISSION_PCT din tabela EMPLOYEES. Să se afiseze mesaje cu operați efectuată la declanșarea triggerului. | <color red>Ex. 8</color> Să se scrie un trigger de tip AFTER care se declanșează în momentul în care se face un insert, delete sau update pe coloanele SALARY și COMMISSION_PCT din tabela EMPLOYEES. Să se afiseze mesaje cu operați efectuată la declanșarea triggerului. | ||
- | {{:bdd:laboratoare:l06ex08.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex08.png?nolink&740|}} |
Verificări pentru Insert, Update si Delete: | Verificări pentru Insert, Update si Delete: | ||
Line 458: | Line 458: | ||
<color red>Ex. 9</color> Să creăm un view care selectează angajații care nu sunt sefi (un angajat este sef dacă apare pe coloana manager_id din tabelul employees). | <color red>Ex. 9</color> Să creăm un view care selectează angajații care nu sunt sefi (un angajat este sef dacă apare pe coloana manager_id din tabelul employees). | ||
- | {{:bdd:laboratoare:l06ex09a.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex09a.png?nolink&740|}} |
Să facem o inserare în view-ul creat | Să facem o inserare în view-ul creat | ||
Line 478: | Line 478: | ||
Să creăm triggerul t_notsefi cu opțiunea INSTEAD OF care să permită operația de INSERT pe view. | Să creăm triggerul t_notsefi cu opțiunea INSTEAD OF care să permită operația de INSERT pe view. | ||
- | {{:bdd:laboratoare:l06ex09b.png?nolink&740|}} | + | {{:bd2:laboratoare:l06ex09b.png?nolink&740|}} |
Să se execute din nou comanenzile de insert de mai sus. Ce observați? | Să se execute din nou comanenzile de insert de mai sus. Ce observați? |