10.GYAKORLAT (ADATBÁZISOK)
Témakör: Oracle PL/SQL
témakör 2.gyakorlata: Oracle
Példatár 9.fejezete
- Hivatkozási és
összetett adattípusok, kurzorok,
kurzorattribútumok
- PL/SQL
doksi: Oracle
Database Rel.12.2 - PL/SQL
Language Reference
>> List
of Examples (PL/SQL Lang.Ref.12.2) -- példákhoz: create_hr_tables.txt
>> SQL/PSM, PL/SQL: SQL4.pdf
(2020.tavaszi AB1EA/HajasCs. 8.ea PL/SQL)
3.rész: Kurzorok
deklarálása és használata
>> 6.fej.
Static SQL/Cursors
>> példa6-1
DML utasítások a programban, implicit
kurzor
>> példa-6-4
implicit kurzor attribútumok
>> példa-6-6
explicit kurzorok deklarálása
és használata, lásd 5.feladat,
>> példa-6-11-től 6-17
explicit kurzor attribútumok, lásd 6.feladat,
>> példa-6-20
paraméteres kurzorok, lásd 7-8.feladat,
>> példa-6-41 for
update kurzor módosításhoz,
lásd 9-10.feladat.
>>
(összefoglaló) 08_kurzor_for_ciklus.pdf; 13_kurzorok.pdf,
pl03_kurzor.txt
-- -- -- --
> PL/SQL
FELADATSOR --2:
-- Emlékeztető: az első három feladat az előző 9.gyakorlaton volt:
-- A feladatokat most is a
saját
Dolgozo-Osztaly táblákra kell
megírni, ehhez
a
táblákat létrehozó script,
mint a DML-hez volt: createDolg
(no
constraint)
-- A PL/SQL blokk
előtt
minden alkalommal állítsuk be: SET SERVEROUTPUT ON
1.) Az első
feladat: Írjuk ki PL/SQL
blokkból: 'Szia Világ!'
2.) Írjuk ki KING
fizetését
(olvasás táblából
változóba), abban az esetben,
ha
ismert, hogy pontosan egy
KING nevű dolgozó szerepel a
táblában,
lásd példa-2-25 select-into (csak
ha a
lekérdezés pontosan egy sort
ad).
3.) Lásd az
Eljut-feladat
megvalósítását PL/SQL
programmal: Rek1, Rek2, stb.
-- -- -- INNEN az új feladatok -- -- --
4.) Adjuk meg egy főnök
azonosítóját, és
töröljük a
közvetlen beosztottjait, és
írassuk ki hány beosztottja volt,
lásd példa-6-4
implicit kurzor attribútumok.
5.) Írjuk ki a dolgozók
nevét
és fizetését!
-- több
sort
visszaadó
lekérdezés, kurzor
használata, lásd példa-6-6
6.) Írjuk ki a 3. 5.
és 8. legnagyobb
fizetésű dolgozó nevét,
fizetését!
-- kurzor
attribútumok, lásd példa 6-17
7.) Írjuk ki azon
dolgozók nevét
és fizetését, akik fizetése
nagyobb mint
egy olyan
szám, amelyet a
felhasználó fog majd futás
közben megadni!
-- felhasználói/helyettesítő
változók: &numerikus_valt,
'&karakteres_valt'
8.) Írjuk ki azon
dolgozók nevét,
fizetését és
osztálykódját, akik a
felhasználó
által
megadott
osztályon dolgoznak! A felhasználó
által
megadott betű
legyen A, R, S (Accounting
...) a 10, 20,
30-as
osztály esetén.
--
paraméteres kurzor, lásd példa-6-20
9.) Növeljük meg a
hivatalnokok
(CLERK)
fizetését a saját
fizetésük 20%-ával!
-- for update
kurzor módosításhoz, Oracle Példatárban egy mego: 9.1.példa
-- Oracle Példatár
feladataihoz/példáihoz: cr_dept_emp.txt (angol ny. séma)
-- mi viszont ezekre a
táblákra magyar nyelvű sémával
dolgozunk: createDolg.
10.) Módosítsuk a
dolgozók
nevét
írjuk át, hogy csak a kezdőbetű legyen
nagy,
a
többi betű kicsi, továbbá a
dolgozók fizetését is
növeljük meg 2 %-kal!
-- for update
kurzor módosításhoz,
lásd példa-6-41
Ţovábbi
gyakorló
PL/SQL feladatok
> CANVAS-ban az IP-18AB1G Adatbázisok I. gyakorlat oldalán
> Oracle
Példatár Feladatok.pdf
9.fejezet 9.1-9.14.feladatok -- táblák: cr_dept_emp.txt