Adatbázis-kezelés (PL/SQL)

Slides:



Advertisements
Hasonló előadás
FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Advertisements

A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
CÉLCÉLCSOPORT  Egészségügyi szakmai tájékoztatás és betegtájékoztatás, az egészséges életvitelhez szükséges információk szolgáltatása, publikálása, áttekint-
John Sheridan BVetMed CVPM DMS MRCVS A Te praxisod, a Te karriered, a Te életed – gond van?
EU pályázati programok A szervezet / változások 1.A pályázók adminisztrációs terheinek csökkentése a projektfejlesztési, pályázati szakaszban.
Internet tudományos használata
OvidSP és az értéknövelt szolgáltatásai
Fájlkezelés.
PL/SQL gyakorlás Kalmár György.
Operációs rendszerek.
SmartCard protokoll formális verifikációja
Adatbázis normalizálás
Logo Országos Számítástechnikai Tanulmányi Verseny
Programstruktúrák.
Becslés gyakorlat november 3.
Komplex természettudomány 9.évfolyam
Microsoft Excel BAHAMAS tanfolyam
Végeselemes modellezés matematikai alapjai
Scilab programozás alapjai

videós team Team vezetője: Tariné Péter Judit Tagok:
PHP - függvények.
Kockázat és megbízhatóság
LabVIEW bevezetéstől a feszültség-áram karakterisztikáig Vida Andrea
Downstream Power Back Off (DPBO)
Triggerek Kalmár György.
A mozgási elektromágneses indukció
Környezeti teljesítményértékelés
PHP-SQL adatbáziskezelő parancsai
Munka és Energia Műszaki fizika alapjai Dr. Giczi Ferenc
Új szolgáltatások illesztése működő rendszerekhez SOA alulnézetben
Nyelvek típusossága.
PL/SQL alapok Adatbázis-kezelés.
2. Bevezetés A programozásba
Downstream Power Back Off (DPBO)
Közigazgatási alapvizsga a Probono rendszerben
Business Mathematics
Grosz imre f. doc. Kombinációs hálózatok /43 kép
Újszegedi Rendezvényház Június 29.
Dr. Hubai Ágnes Közbeszerzési Tanácsadók Országos Szövetsége, elnök
Számítógépes Hálózatok
Teljes visszalépéses elemzés
Hőmérsékleti Excel táblázat „előállítása”
Tilk Bence Konzulens: Dr. Horváth Gábor
Adatbázis Hasonlóság- elemzés Előrejelzés Stratégia- elemzés
Informatikai gyakorlatok 11. évfolyam
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
Oracle Adatbázisok kezelése c#-ban
Lapkiadó, rendezvényszervező vállalatirányítási rendszer SQL alapon
Matematikai Analízis elemei
Vasbeton falvasalás megadása és ellenőrzése EC2 szerint
A kutatási projekt címe Név Oktató neve Tanulmányi intézmény neve
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL I. HELYZETFELMÉRŐ SZINT FOLYAMATA 8
A szállítási probléma.
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Dr. Varga Beatrix egyetemi docens
Binomiális fák elmélete
Matematika II. 5. előadás Geodézia szakmérnöki szak 2015/2016. tanév
SQL jogosultság-kezelés
Üzleti projektterv Előadó neve | Cégnév.
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Munkagazdaságtani feladatok
Szöveges adatok tárolása
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Előadás 08 Eljárások, függvények Hibakezelés (Kivétel kezelés)
Generali Alapkezelő beszámolója Gyöngyház Nyugdíjpénztár részére
Algoritmusok.
Kód tördelése és a megjelenés
KONFERENCIA KAFFEE projekt Óvári Márta Köznevelési Főosztály
Szabálytalanságkezelés
Előadás másolata:

Adatbázis-kezelés (PL/SQL) Kivételkezelés Adatbázis-kezelés (PL/SQL)

Jelölések Az SQL, PL/SQL utasítások, nevek stb. (terminálisok) nagybetűvel szerepelnek, pl.: SELECT. A nemterminálisok kisbetűvel, pl.: eredmeny. Az alternatívákat függőleges vonal választja el egymástól ( | ). Az opcionális elemek szögletes zárójelben állnak ( [ ] ), pl.: [NOT NULL]. A kötelezően megadandó alternatívákat kapcsos zárójelek fogják közre ( { } ), pl.: {kifejezes | feltetel}. Az iteráció jelölésére három pont szolgál (...), pl.: utasitas [utasitas]...

Alapok A kivételek rendszere a PL/SQL-ben a futás közben bekövetkező események (hibák) kezelését teszi lehetővé. A kivételek lehetnek beépítettek, amelyeket általában a rendszer vált ki, illetve felhasználói kivételek. A beépített kivételeknek lehet nevük, a felhasználói kivételeknek mindig van nevük. Egy kivételhez a PL/SQL-ben egy kód és egy üzenet tartozik. A beépített kivételek kódja negatív szám, a felhasználói kivételeké pozitív. A beépített kivételeket a STANDARD csomag definiálja. A kivételek kezelésére kivételkezelőt építhetünk be a programunkba.

Fontosabb beépített kivételek CASE_NOT_FOUND -6592 CURSOR_ALREADY_OPEN -6511 INVALID_CURSOR -1001 INVALID_NUMBER -1722 (pl. ha egy sztring konverziója sikertelen) NO_DATA_FOUND 100 (SELECT INTO utasítás nem adott vissza sort) ROWTYPE_MISMATCH -6504 TOO_MANY_ROWS -1422 (pl. SELECT INTO utasítás túl sok sort adott vissza) VALUE_ERROR -6502 (pl. ha egy változó a lehetségesnél nagyobb értéket kap) ZERO_DIVIDE -1476

Utasítások I. Felhasználói kivételeket az EXCEPTION alapszóval deklarálhatunk: DECLARE magan_kivetel EXCEPTION; Egy olyan beépített kivételhez, melynek nincs neve, egy pragma segítségével magunk rendelhetünk hozzá nevet. Az utasítás alakja: PRAGMA EXCEPTION_INIT (kivetel_nev, kod); Bármely kivétel kiváltható a következő utasítással: RAISE kivetel_nev; Megjegyzés: az utasítás bárhol elhelyezhető, ahol utasítás szerepelhet.

Utasítások II. Kivételkezelő bármely programegység végén az EXCEPTION alapszó után helyezhető el. Felépítése: WHEN kivetel_nev [OR kivetelnev]... THEN utasitas [utasitas]... [WHEN kivetel_nev [OR kivetelnev]... THEN utasitas [utasitas]...] [WHEN OTHERS THEN utasitas [utasitas]...] Megjegyzés: ha egy programrészben kivétel váltódik ki, az adott programegység kivételkezelője kapja meg a vezérlést, s a fenti programrészbe nem térhetünk vissza. Ha a kivétel itt nem kerül kezelésre, továbbadódik. Ha kivételkezelőben váltódik ki kivétel, szintén továbbadódik.

Példa DECLARE a NUMBER NOT NULL:=1; b NUMBER; BEGIN a := b; EXCEPTION         WHEN VALUE_ERROR THEN                 DBMS_OUTPUT.PUT_LINE ('Hoppa!!'); END; Megjegyzés: a hiba azért keletkezett, mert b-t nem inicializáltuk, s így az értéke NULL maradt. Lásd még a 2. példát a Kivetel_pelda.html fájlban!

RAISE, SQLCODE, SQLERRM A kivételkezelőben a bekövetkezett kivétel újra kiváltható, hogy azt majd egy külső programegység kivételkezelője dolgozza fel ismét. Erre szolgál a RAISE utasítás „üres” alakja: RAISE; Az SQLCODE beépített függvény a bekövetkezett hiba kódját, az SQLERRM pedig a hozzárendelt üzenetet adja vissza. A függvények nem csak a kivételkezelőben használhatók. Az SQLERRM meghívható paraméterrel is, a paraméternek egy kivétel kódjának kell lennie. Ekkor a függvény az adott kivételhez rendelt üzenetet adja vissza.

RAISE_APPLICATION_ERROR A STANDARD csomag tartalmaz egy RAISE_APPLICATION_ERROR eljárást három paraméterrel: az első egy kivétel kód -20000 és -20999 között; a második egy maximum 2048 bájt hosszúságú sztring (hibaüzenet); a harmadik opcionális paraméter: TRUE érték esetén (ez az alapértelmezés) a hibaveremben az első paraméter által megadott kód felülírja a legutolsónak bekövetkezett kivétel kódját, FALSE esetén pedig kiürül a hibaverem és csak a most megadott kód kerül bele. Lásd 3. példa a Kivetel_pelda.html fájlban! A példához a függvények ismerete szükséges lehet (lásd: Alprog.ppt bemutató), bár valószínűleg enélkül is érthető.

Feladat Írassuk ki azt a legnagyobb faktoriálist, ami még túlcsordulás nélkül kiszámítható. Mi a keletkező kivétel kódja és mi a kivételhez tartozó üzenet? Írjunk olyan kurzort, amelynek paramétere egy természetes szám n és egy dátum, s azon ügyfelek nevét és azonosítóját adja vissza, akik végrehajtottak egy n összegű tranzakciót az adott napon. Hívjuk meg ezt a kurzort különböző értékekkel. Ha nem hajtottak végre olyan összegű tranzakciót az adott napon, akkor adjon hibaüzenetet. Különben írassuk ki az ügyfelek nevét, azonosítóját és a dátumot.