ADATBÁZISOK-1
GYAKORLAT [prog.inf: IP-08AB1G] ELTE, 2015/2016-os tanév I.félévében [2015.szept.] |
|
Gyakorlatok: [1.] Kedd 8:30-10:00 PC1, [2.] Szerda 8:30-10:00 PC1
A gyakorlat kötelező, katalógus van, legfeljebb 4 hiányzás lehetséges.
Ellenőrzésre GYAK jelenléti ív (név-> 4kar-kód) hallgato/[jelszóval] .pdf
A gyakorlat célja: az előadáson szereplő alapfogalmak, algoritmusok, és
az adatbázisok-szemlélet gyakorlatban való elsajátítása. Az a cél, hogy
a hallgatók minél hatékonyabban tudjanak SQL és PL/SQL feladatokat
megoldani, hogy értsék is hogyan történik a lekérdezések kiértékelése.
Gyakorlatok anyaga: >> 1.GY >> 2.GY >> 3.GY >> 4.GY >> 5.GY >> 6.GY >>
>> I.ZH/7.GY >> 8.GY >> 9.GY >> 10.GY >> 11.GY >> 12.GY >> II.ZH/13.GY
Dolgozatok időpontja: I.ZH/7.GY: 2015.okt.20-21, II.ZH/13.GY: dec.8-9.
-- Figyelem! okt.21-én és dec.9-én szerdai gyakorlati csoport ZH-it:
-- Déli Tömb 0-411-es teremben írjuk (földszint Déli Tömb Arénánál).
Eredmények: (név-nélkül 4kar-kóddal) elérése hallgato/[jelszóval] .pdf
+EA jelenléti ív/gyak.csop: .pdf és EA röpzh-ák pontjai/gyak.csop: .pdf
Pót/javZH: az egyik és csak az egyik ZH-t lehet pótolni vagy javítani
-- 2015. dec.18.P. 10h vagy dec.21.H. 10h (0-818. Soó Rezső terem)
Gyak.j.UV: dec.18.P. 10h (0-818.terem) vagy jan.5.K. 12h (0-823.terem)
A gyakorlatok gépes részéhez: Oracle adatbázisok elérése, SQL developer
Oracle Példatár feladatai: Feladatok.pdf (SQL: 1-6.fej., PL/SQL: 8-10.fej.)
-- Példatár feladataihoz scriptek: createEmpDept(en) vagy createDolg(hu)
Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
-- Tankönyv feladataihoz a scriptek: createTermékek, createCsatahajók
Oracle SQL segédanyagok: ebben az eduSQL mappában
-- lekérdezésekhez a scriptek: createHRsyn (elég szinonimákat használni)
-- később, DML-utasításokhoz: createHRtables (itt saját tábláink legyenek)
Oracle PL/SQL segédanyagok: ebben az eduPLSQL mappában
-- itt a plsql_ fájlok forrása: innen -- és a PL/SQL könyvhöz a scriptek: itt
-- Tankönyvtár: PL/SQL programozás Oracle 10g-ben (Gábor A.-Juhász I.)
Oracle 11gR2 Online Docu: -- Tanszéki szerveren -- Oracle oldalán --
-- SQL Language Reference: HTML PDF (2009.10) HTML PDF (2014.07)
-- PL/SQL Language Refer.: HTML PDF (2010.03) HTML PDF (2014.12)
1.GY: 2015.09.08-09. --- SQL előkészítés: create table, insert utasítás
> Ismerkedés, Oracle adatbázisok elérése, SQL Developer használata
> SQL DDL: relációséma, adattípusok, megszorítások: create table
> SQL DML: relációelőfordulás, táblák feltöltése adatsorokkal: insert
> Oracle Példák: Oracle segédanyagok eduSQL mappa (ehhez: createHRsyn)
Bevezetés (HR séma táblái), Sample Schemas: Fig.4-1 HR és OE sémák
> További példák: Az OracleDoc Data Types fejezetének a segítségével
(vagy az ebből kivett oszloptípusok segédlettel) hozzunk létre táblákat.
> Example 2-1 CREATE TABLE utasítás alapján hozzunk létre saját táblát:
DROP TABLE MY_EMPLOYEES; CREATE TABLE MY_EMPLOYEES (...);
> Oracle Példatár: Feladatok.pdf (ehhez: createEmp vagy createDolg)
> További táblák, demo táblák létrehozása és feltöltése adatokkal
2.GY: 2015.09.15-16. --- Rel.alg. és SELECT: egy tábla lekérdezése
> Relációs algebra unér műveletei (vetítés, kiválasztás, átnevezés)
> Vetítés és kiválasztás kiterjesztése, kifejezések, sorfüggvények
> SELECT utasítás SELECT, WHERE és ORDER BY záradékai
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/1.lecke (vetítés kiterjesztése, kifejezések),
>> 1/2.lecke (kiválasztás, kiválasztott sorok rendezése),
>> 1/3.lecke (sorfüggvények használata a SELECT és WHERE záradékban)
> Feladatok: Oracle Példatár Feladatok.pdf 1.fejezet 1.1-1.20 feladatok
Megj.: 1.14.feladatban foglalkozás szerint rendezve (nem csoportosítva)
> HF: befejezni az Oracle Példatár 1.1-1.20 feladatokat!
3.GY: 2015.09.22-23. --- SELECT: kifejezések, összesítés, csoportosítás
> I.rész: előző heti HF: Példatár 1.1-1.20 feladatok, sorfüggvények
> További példák, see Examples: SQL Language Reference >> 5 Functions:
Sorfüggvények: pl. Karakteres függvények: SUBSTR, RPAD, ..., INSTR, ...
pl. Dátum függvények: MONTHS_BETWEEN, ..., pl. Konverziós: TO_DATE, ...
pl. Null érték kezelése, helyettesítő érték megadása: NVL, COALESTE, ...
Figyelem! COALESTE példában: FROM product_information
mivel ez a tábla nem az HR, hanem OE sémában szerepel, ezért
itt ki kell írni a táblatulajdonost: FROM OE.product_information
(ugyanis csak a HR owner tábláihoz hoztuk létre a szinonimákat).
> II.rész: Kiterjesztett relációs algebra egy relációra vonatkozó műveletei:
kiterjesztett vetítés, ismétlődő sorok megszüntetése, összesítések,
csoportosítási művelet, rendezési művelet (binár műveletek később)
> Egy táblára vonatkozó lekérdezések kifejezése SQL-ben SELECT utasítás
SELECT, FROM, WHERE, GROUP BY, HAVING és ORDER BY záradékai
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/4.lecke (csoportosítás, group by és having záradékok)
> Feladatok: Oracle Példatár Feladatok.pdf 2.fejezet 2.1-2.24 feladatok
> HF: befejezni az Oracle Példatár 2.1-2.24 feladatokat!
4.GY: 2015.09.29-30. --- SELECT: több táblára vonatkozó lekérdezések
> Előző heti HF: Példatár 2.1-2.24: egy táblára vonatkozó lekérdezések
> Új anyag: Több táblára vonatkozó lekérdezések, összekapcsolások
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/5.lecke (összekapcsolások, a külső join is)
>> 1/7.lecke (halmaz- és multihalmaz műveletek)
> További példák: Példák összekapcsolásokra és outer join-okra
> Egy feladat kétoldali külső összekapcsolásra: Adjuk meg osztályonként
a dolgozók összfizetését (department_name, sum(salary)) formában
a hr.employees és hr.departments táblák adatai alapján, amelyekre
1. Azok az osztályok is jelenjenek meg ahol nem dolgozik senki,
ott az összfizetés 0 legyen.
2. Ha van olyan dolgozó, akinek nincs osztálya, azokat egy 'FIKTIV' nevű
osztályon gyűjtsük össze.
3. Csak azokat az osztályokat írjuk ki, amelyek nevében van 'B' betű,
plusz a FIKTIV osztályt.
--- Megoldás/ellenőrzésként: lásd itt
> Feladatok: Oracle Példatár Feladatok.pdf 3.fejezet 3.1-3.12 feladatok
Ma csak az összekapcsolásokat nézzük meg, alkérdések a köv.héten!
> HF: Oracle Példatár 3.1-3.12 feladatok: több tábla összekapcsolása!
5.GY: 2015.10.06-07. --- Rel.alg. és SELECT: több táblás lekérdezések
> Előző heti HF: Példatár 3.fejezet: Több táblára vonatkozó lekérdezések
> Oracle Példák: -- lekérdezésekhez elég szinonimákat venni: createHRsyn
>> 1/6.lecke és 2/6.lecke (alkérdések)
> Áttekintés: Tk.2.4.14.Feladatok (Tk.54-57.o. 2.4.1. és 2.4.2.feladatok)
relációs algebrai kifejezésekkel, kifejezőfákkal és átírva SQL lekérdezésekre
> Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
> Tankönyv feladataihoz a scriptek: create Termékek, create Csatahajók
Lekérdezések kifejezése először (papíron) természetes módon táblákkal,
a táblákon értelmezett műveletekkel gondolkodva, és relációs algebrában
kifejezőfákkal is felrajzolva, majd átírva SQL SELECT utasítással (gépnél)
többféle átírást, megoldási lehetőséget vizsgáljunk meg, vessünk össze!
--- mivel az előadáson volt: Termékek-feladatok-megoldása.pdf (EA-on!)
--- ezért a gyakorlaton a Csatahajók-feladatok.pdf feladatokat nézzük!
> Feladatok: Oracle Példatár Feladatok.pdf 3.fejezet feladatai
Összekapcsolások és alkérdések használatával többféle módon oldjuk meg
> HF: Oracle Példatár 3.fejezet feladatai: az alkérdések használata is!
6.GY: 2015.10.13-14. --- Rel.alg.-> Datalog és SELECT: lekérdezések
> I.ZH előtti összefoglalás, konzultáció, kérdés/válasz
> 1-6.előadások anyaga: Tankönyv 1., 2., 5. és 6.fejezetei konzultáció
> Oracle Példatár 1-2-3.fejezet feladataiból konzultáció: kérdés/válasz
> Tankönyv feladatai: Termékek-feladatok.pdf, Csatahajók-feladatok.pdf
A múlt heti relációs algebrai kifejezőfákat írjuk át Datalog szabályokra is
>>> Segédanyag: Rel.alg.kif.-> Datalog átírás.pdf
> Feladatok: Oracle Példatár Feladatok.pdf 3.fejezet feladatai
> HF: befejezni az Oracle Példatár 3.fejezet feladatait! Köv.héten I.ZH!
7.GY: 2015.10.20-21. --- I.ZH: Lekérdezések (rel.algebra, datalog, SQL)
> I.ZH témaköre:
> 1-6.előadások anyaga: Tankönyv 1.fej. Alapok, 2.fej.Relációs algebra,
5.fej.Kit.rel.algebra, Datalog, 6.1-6.4 SQL SELECT utasítás, 6.5. DML
> 1-6.gyakorlatok anyaga és az Oracle Példatár 1-3.fejezet feladatai
-- Figyelem! okt.21-én és dec.9-én szerdai gyakorlati csoport ZH-it:
-- Déli Tömb 0-411-es teremben írjuk (földszint Déli Tömb Arénánál).
-- -- o ~ o ~ o~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o -- --
-- -- Őszi szünet : 2015. október 26-tól (hétfő) - október 30-ig (péntek) -- --
-- -- o ~ o ~ o~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o ~ o -- --
8.GY: 2015.11.03-04. --- SQL DML-utasítások. Rekurzió az SQL-ben
> I.rész: SQL DML-utasítások: INSERT, DELETE és UPDATE utasítások
> Segédlet: 5ea_SQL DML -- Tk. 6.5. Táblák tartalmának módosítása
> Oracle Példák: -- DML-utasításokhoz saját táblák létrehozása: createHRtables
>> 1/8.lecke SQL DML-utasítások (insert, update, delete) és a tranzakciók
> Feladatok: DML_feladatok.txt --- ehhez itt: createDolg (no constraint)
> HF: Oracle Példatár 5.fejezet: DML-utasítások (köv.hét: DDL-utasítások)
> II.rész: Rekurzió. Az Eljut-feladat. --- Ehhez: create_jaratok_tabla.txt
> Segédlet: 7.előadás.pdf -- Tk.10.2. Az Eljut-feladat. Rekurzió az SQL-ben
> Oracle Példák:
>> 2/6.lecke (WITH záradék -- alkérdések után 16-18.o.)
>> 2/7.lecke Hierarchikus lekérdezések -- hiera_lekerd.txt
> További példák az Oracle SQL Lang.Ref.11.2.pdf dokumentációban:
-- Hierarchikus lekérdezések: Chapter 9 - SQL Queries and Subqueries
innen Hierarchical Queries 9-3 és Hierarchical Query Examples 9-5
-- Rekurzió with-utasítással: itt 19-36 Subquery Factoring: Example
9.GY: 2015.11.10-11. --- Modellezés és SQL DDL (táblák, nézettáblák)
> I.rész: Relációs modellezés, lásd 08.előadás.pdf
> Feladatok:
(1) Tk.4.1.-4.4. Az egyed-kapcsolat (E/K) modell elemei
E/K diagramok felrajzolása: Modellezési feladatok - E/K diagram
(2) Tk.4.5.-4.6. E/K diagram átírása relációs modellé
E/K-diagr. átírása relációkká: EKpelda.pdf, E/K_pl1.pdf és E/K_pl2.pdf
> II.rész: SQL DDL-utasítások: CREATE, [ALTER], DROP -> TABLE, VIEW
> Segédlet: 09.előadás.pdf -- Tk. 7. és 8. fejezetei SQL DDL utasítások
> Oracle Példák (Megj.: innen az indexek létrehozása később AB2GY-on lesz)
>> 1/9.lecke SQL DDL (táblák és megszorítások létrehozása)
>> 1/10.lecke SQL DDL (innen: csak a nézettáblák létrehozása kell)
>> 2/1.lecke SQL DDL (innen: csak a megszorítások létrehozása kell)
> Feladatok: Táblák és megszorítások (constraints), nézettáblák létrehozása.
Adatok karbantartása adattáblán illetve nézeten keresztül, és megfigyelni
ezek egymásra hatását: Hogyan hat a nézetek adatainak módosítása az
adattáblára, és az adatok módosítása hogyan jelenik meg a nézettáblában?
> További segédletek: create table, típusok, megszorítások, nezettáblák (.txt)
> HF: Oracle Példatár 5. és 6.fejezet feladatai: DDL-utasítások
10.GY: 2015.11.17-18. --- PL/SQL: blokk, deklaráció, utasítások, select into
> Oracle PL/SQL, ehhez Oracle 11gR2 doc PL/SQL Language Reference
-- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
> I.rész: PL/SQL blokk szerkezete, változóhasználat >> 2.fej. Alapok
[1_deklarációs_rész] 2_végrehajtható_rész [3_kivételkezelő_rész]
>> példa-2-24 deklarációk-és-értékadás
>> példa-2-25 select-into (itt a 2-25 példában blokk: begin ... end; /
át kell tenni az end;-et a végére!) SELECT INTO-t akkor használjuk,
ha a lekérdezés pontosan egy sort ad, ha a lekérdezés több sorral
tér vissza, akkor kurzort kell használni, lásd köv.gyakorlat anyagát).
>> (összefoglaló) plsql_02_tipusok.pdf, 03_sql_dml.pdf, 05_valtozok.pdf
> PL/SQL feladatok: --- ehhez, 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!', majd egészítsük ki,
kérjen be egy nevet, számot, dátumot és ezeket is írassuk ki a programból!
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!
> II.rész: Vezérlési szerkezetek a PL/SQL-ben 4.fej. Control Statements
>> példa-4-5 if-then-elsif utasítás,
>> példa-4-6 egyszerű case utasítás, és itt írjuk át grade := 'B' -> '&B'
helyettesítési változóra, aminek a felhasználó adja meg az értékét!
>> példa-4-10 alap LOOP ciklus utasítás EXIT WHEN kilépés a ciklusból
>> példa 4-14 FOR ciklus utasítás
>> példa 4-27 WHILE ciklus utasítás
>> (összefoglaló) plsql_01_bevezetes.pdf, pl02_vezerlo_utasitasok.txt
> III.rész: Az "Eljut feladat" megvalósítása PL/SQL-ben
-- Az Eljut-feladat a Tankönyv (Ullman-Widom kék könyv) 10.2 szakaszára épül
-- Adott Jaratok(legitarsasag, honnan, hova, koltseg, indulas, erkezes) táblában
repülőjáratok adatait tároljuk (honnan-hova várospárok). Azt keressük, hogy
Dallasból mely városokba tudunk eljutni (közvetlenül vagy egy/több átszállással).
-- Ezzel a scripttel jaratok_tabla.txt készítsünk saját táblát, ami alapján dolgozunk.
> Rek1.feladat: Mely (x, y) várospárokra lehetséges egy vagy több átszállással
eljutni x városból y városba? -- Ehhez készítsünk egy Eljut(honnan, hova) táblát,
a sorait a járatok tábla alapján PL/SQL programmal töltsük fel (ciklust szervezni,
az insert 2.alakja: több sor felvitele alkérdéssel/járatok és eljut táblák alapján).
>>> (csak ha kell, egy kis segítség, további ötletek és a megoldás vázlata: itt)
> Rek2.feladat: Mely (x,y) város párokra hány átszállással és milyen költségekkel
lehetséges egy vagy több átszállással eljutni x városból y városba? -- Ehhez is
készítsünk Eljut2(honnan, hova, atszallas, koltseg) táblát, a sorait programmal.
>> Papíron megoldandó feladat: Fejezzük ki az SQL-1999-es szabvány SELECT
WITH RECURSIVE utasítással, hogy mely mely városokba (hova) tudunk eljutni
'DAL' (Dallas)-ból legfeljebb 3 átszállással és legfeljebb 5000 költségből.
>>> (csak ha kell, egy kis segítség WITH RECURSIVE papíros részéhez itt)
> Rek3.feladat: Tegyük fel, hogy nemcsak az érdekel, hogy el tudunk-e jutni az
egyik városból a másikba, hanem az is, hogy utazásunk során az átszállások is
ésszerűek legyenek, ez azt jelenti, hogy ha több járattal utazunk, akkor nézni
kell átszálláskor az érkező járatnak legalább egy órával a rákövetkező indulás
előtt meg kell érkeznie. (Tegyük fel, hogy nincs egy napnál hosszabb utazás!)
> Rek4.feladat: A fenti feladatokat oldjuk meg PL/SQL-ben úgy is, hogy ne csak
a várospárokat, hanem a teljes útvonalat is listázzuk ki.
> Gyakorló feladatok az Oracle Példatárból
> Feladatok: Oracle Példatár Feladatok.pdf 8.fejezet 8.1-8.9.feladatok +Eljut-feladat
> HF: Oracle Példatár 8.fejezet feladatai: Változóhasználat, utasítások PL/SQL-ben
11.GY: 2015.11.24-25. --- PL/SQL: lekérdezések, kurzorok használata
> Oracle PL/SQL, ehhez Oracle 11gR2 doc PL/SQL Language Reference
-- Az Oracle doksikban szereplő példák kipróbálásához: createHRtables
DML utasítások a PL/SQL-ben, kurzorok >> 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-7 explicit kurzorok deklarálása és használata, lásd 5.feladat,
>> példa-6-11-től 6-14 explicit kurzor attribútumok, lásd 6.feladat,
>> példa-6-17 paraméteres kurzorok, lásd 7-8.feladat,
>> példa-6-43 for update kurzor módosításhoz, lásd 9-10.feladat.
>> (összefoglaló) (volt:03_sql_dml.pdf), 13_kurzorok.pdf, pl03_cursor.txt
> PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
-- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
1-2.) Lásd az előző heti gyakorlaton az első PL/SQL feladatokat!
3-4.) Lásd az Eljut-feladat megvalósítását PL/SQL programmal: Rek1 és Rek2.
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-7
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-14
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-17
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, lásd ugyanez a feladat: példa-6-43
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-43
> Gyakorló feladatok az Oracle Példatárból
> Feladatok: Oracle Példatár Feladatok.pdf 9.fejezet 9.1-9.14.feladatok
> HF: Oracle Példatár 9.fejezet feladatai: Lekérdezések, kurzorok a PL/SQL-ben
12.GY: 2015.12.01-02. --- PL/SQL: tárolt eljárások/függvények, kivételkezelés
> II.ZH előtti összefoglalás:
> Oracle Példatár 4-10.fejezet feladataiból konzultáció, kérdés/válasz
> 5-9.előadások és 8-12.gyakorlatok anyagából konzultáció, kérdés/válasz
> röpzh3 témaköre, például: A csoport, B csoport továbbá PL/SQL feladatok
> PL/SQL eljárások és függvények >> 8.fej. PL/SQL Subprograms
>> példa2-19 Alprogramok (már itt is volt: 2.fej. Alapok)
>> példa4-1 IF-THEN utasítás (már itt is volt: 4.fej. Utasítások)
>> (összefoglaló) plsql_06_alprogramok.pdf, pl06_procedura_fv.txt
> PL/SQL kivétel- és hibakezelés >> 11.fej. PL/SQL Error Handling
>> példa-11-5 és tábla-11-2 előre definiált kivételek
>> példa-11-8 felhasználó által definiált kivételek
>> (összefoglaló) plsql_07_kivetelek.pdf, pl05_exception.txt
> (összefoglalásként) plsql_13_kurzorok.pdf
> PL/SQL feladatok: --- ehhez, mint a DML-hez volt: createDolg (no constraint)
-- A PL/SQL blokk előtt minden alkalommal állítsuk be: SET SERVEROUTPUT ON
1-10.) Lásd az előző heti gyakorlaton az első PL/SQL feladatokat: ezeket most
írjuk át eljárásokra/függvényekre, plusz legyen benne hiba- és kivételkezelés!
2.) Írjuk ki KING fizetését (olvasás táblából változóba és a képernyőre való kiíratás)
abban az esetben, ha pontosan egy KING nevű dolgozó szerepel a táblában,
viszont ha nincs ilyen nevű dolgozó vagy több ilyen is van, akkor azt írjuk ki!
-- Előre definiált kivételek: NO_DATA_FOUND, TOO_MANY_ROWS, lásd példa-11-5
(...) -- Előre definiált és felhasználói kivételek. Alprogramok (függvények, eljárások)
11.) a.) Írjunk meg egy függvényt, ami az azonosító alapján visszaadja a nevet!
b.) Írjunk meg egy eljárást, ami az azonosító alapján egy OUT változóban
visszaadja a nevet! (alprogramok: függvények és eljárások/procedúrák)
12.) Írjunk meg egy függvényt, ami visszaadja a paraméterében levő magánhangzók
számát. Majd módosítsuk a fizetéseket ennek a függvénynek a segítségével.
(itt most a módosítást az UPDATE utasítással végezzük, és nem plsql-ben)
> Gyakorló feladatok az Oracle Példatárból
> Feladatok: Oracle Példatár Feladatok.pdf 10.fejezet feladatai
> HF: befejezni az Oracle Példatár 10.fejezet feladatait! Köv.héten II.ZH!
13.GY: 2015.12.08-09. --- II.ZH: SQL DDL és DML utasítások, PL/SQL
> II.ZH témaköre:
> 5-9.előadások anyaga: Tankönyv 4.1.-4.6. E/K diagram átírása relációkra,
6.5. DML, 7-8.fej.DDL, 9.3-9.4.SQL/PSM (PL/SQL), 10.2.Rekurzió (WITH)
> 8-12.gyakorlatok anyaga és az Oracle Példatár 4-10.fejezet feladatai
-- Figyelem! dec.9-én szerdai gyak. II.ZH-t: Déli Tömb 0-411-es teremben írjuk