SEGÉDANYAGOK:
Oracle®
Database 11g Release 2 Documentation Library
- Oracle PL/SQL Language Reference 11gR2
HTMLPDF
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.
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
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)