PL/SQL programozás
   
> Gépes feladatok: III. témakör: PL/SQL programozás
   Az előző gyakorlatról ismétlés:
   >> 3.1. PL/SQL alapok, változóhasználat, vezérlési szerkezetek
   >> 3.2. SELECT INTO, hivatkozási és összetett adattípusok
   
   Mai gyakorlat témaköre:
   >> 3.3. PL/SQL kurzor  
   >> 3.4. Tárolt eljárások és függvények
   -- Beküldendő nem-kötelező h.f.: 
plsql_feladatok1
   
   Folyt. a köv.gyakorlaton:
   >> 3.5. PL/SQL csomagok, kivételkezelés
   >> 3.6. PL/SQL triggerek (ez csak tananyagon kívül)
   >> 3.7. Az "Eljut feladat" PL/SQL-ben (ez tananyag!)
    

SEGÉDANYAGOK: ORACLE  PL/SQL:
Oracle® Database 11g Release 2 Documentation Library
- Oracle PL/SQL Language Reference 11gR2         HTML   PDF
- Oracle PL/SQL Packages and Types Ref.11gR2  HTML   PDF
 
További segédanyagok a PL/SQL-hez:
- Nikovits Tibor (ELTE) PL/SQL összefoglaló: NT_Plsql.htm
- Kósa Balázs (ELTE) PL/SQL összefoglaló: KB_Plsql.pdf   
- Ullman/Chang (Standford) Using Oracle PL/SQL
- Ullman/Chang (Standford) Using Oracle PL/SQL
- Ullman/Chang (Standford) Constraints and Triggers
- PL/SQL Technology Center (Oracle 11g PL/SQL)
   

3.3. Kurzor
-- Példák kurzor használatára: plsql_kurzor.sql
 
SEGÉDANYAGOK: Oracle® Database 11g Release 2 Documentation Library
- Oracle PL/SQL Language Reference 11gR2         HTML   PDF
   Itt:  lásd 1. fejezet PL/SQL áttekintés, 6.fejezeten belül: Cursors
   A ZH-n is használható a dokumentáció, érdemes átnézni a példákat,
   például FOR UPDATE-re az "Example 6-43", mint az alábbi példa:
   
2c_kurzor.sql - Kurzor, kurzorattribútumok (%FOUND, %NOTFOUND, stb)
-    Növeljük meg a hivatalnokok (CLERK) fizetését a saját fizetésük 20%-ával!
      (hibas_mo.sql -> tanulságok leszűrése!)

2d_impl_kurzor.sql - Implicit kurzor, kurzorhasználat FOR ciklusban
-    Hozzuk létre a dolgozo táblát az emp táblából, és bővítsük azt egy sorszám
     oszloppal. Ezt töltsük fel 1-től kiindulva egyesével növekvő értékkel minden
     dolgozó esetén a dolgozók nevének ábécé sorrendje szerint.

2e_expl_kurzor.sql - Explicit kurzor
-    2d feladat másik megoldása

2f_current_of.sql - Explicit kurzor, FOR UPDATE, CURRENT OF 
-    2d, 2e feladat harmadik megoldása
   
3.4. (Tárolt) eljárások és függvények.

3a_alprogr.sql 
-    Egyszerű számnövelő példa pl/sql függvények és eljárások használatára
   

PL/SQL FELADATOK-1 (BEKÜLDENDŐ NEM-KÖTELEZŐ HF)
      
 -- Beküldendő nem-kötelező házi feladat, bemutatás esetén órai+pont,
     amely csak féljegy esetén számít bele a gyak.jegybe (felfelé kerekítés),
     hasonlóan, mint az I.ZH előtti belépő dolgozatoknál (cél: a gyakorlás)
-- Beküldése e-mailben sila@inf.elte.hu címre HATÁRIDŐ: május 5. 12h

   
-- Táblák és az eddigi sql feladatok: table_dolgozo.txt 
-- Ehhez a táblák létrehozása: create_dolgozo.txt

1.) Hello World program (alap program, kiírás a képernyőre)

2.) Írjuk ki KING fizetését (olvasás táblából változóba)

3.) Írjuk ki KING belépési dátumát és fizetését különböző
     formátumokban 1981.11.17, 1981-november-17, stb
     (dátum formátumok, több oszlopos lekérdezés)

4.) Írjuk ki a dolgozók nevét és fizetését (kurzor használata)

5.) Írjuk ki a 3. 5. és 8. legnagyobb fizetésű dolgozó nevét, fizetését
     (kurzor attribútumok)

6.) Tegyük be a dolgozók nevét egy plsql tömbbe, és írjuk ki az utolsó előtti sort.
     (plsql tömb használata) -- Segítségképpen: Tábla típus definiálása:
     TYPE tábla_típus_neve  IS TABLE OF adattípus INDEX BY BINARY_INTEGER;
         ahol az adattípus lehet %TYPE vagy %ROWTYPE-al megadva,
         lehet előre definiált típus vagy általunk definiált rekordtípus.
     Tábla deklarálása: tábla_név   tábla_típus_neve;
     Hivatkozás a tábla elemeire: tábla_név(index)
     PL/SQL tábla attribútumok, például: tábla_név.COUNT hány eleme van a táblának.
   
7.) Írjuk ki a dolgozók nevét és fizetését mind a 3-féle kurzorhasználattal.

8.) Írjuk ki azon dolgozók nevét és fizetését, akik fizetése nagyobb mint
     a felhasználó által megadott szám.

9.) Í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)

10.) Módosítsuk a fizetéseket egy kurzorral végighaladva rajtuk.
       Adjunk hozzá mindenki fizetéséhez n*10 ezret, ahol n a nevében levő
       magánhangzók száma (a, e, i, o, u).
      (módosítás kurzorral, beépített függvények)
   
 Vissza az AB1 gyakorlat oldalára             Vissza a Kezdőlapra