12.FELADATSOR
(INFORMÁCIÓS RENDSZEREK)
További haladó témakörök: SQL progr.nyelvekben, SQL/PSM tárolt elj/fv-ek
> SQL/PSM EA: 8.ea.pdf SQL progr.nyelvi használata, Oracle PL/SQL
> Oracle PL/SQL: Oracle
Junior EA
>> Oracle
PL/SQL.pdf, de EA helyett:
-- Az Oracle PL/SQL dokumentáció PÉLDÁIN keresztül beszéljük meg a lényeget
> 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
-- További segédanyagok: Oracle Példatár Feladatok.pdf 8-10.fej.feladataihoz:
> PL/SQL változóhasználat: Oracle
Példatár 4.fej.pdf (Interaktív környezet)
> PL/SQL utasítások, vezérlési szerkezetek: Oracle
Példatár 8.fej.pdf
> PL/SQL - SQL DML programban, kurzorok: Oracle
Példatár 9.fej.pdf
> Kivétel-
és hibakezelés, alprogramok: Oracle
Példatár 10.fej.PSM.pdf
1.rész:
PL/SQL
alapjai, PL/SQL
blokk >> 2.fej. PL/SQL alapok
[1_deklarációs_rész] 2_végrehajtható_rész [3_kivételkezelő_rész]
SET SERVEROUTPUT ON;
>> példa-2-24
deklarációk-és-értékadás, típusok, %TYPE, %ROWTYPE
>> 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ésőbb).
2.rész:
Feltételes utasítások,
ciklusok >> 4.fej. PL/SQL vezérlő utasítások
>> példa-4-4 if-then-elsif
utasítás (ebben a példában
is van pl. eljárás)
>> példa-4-6
egyszerű case utasítás, és itt
írjuk át grade
:= 'B' ->
'&B'
próbáljuk ki
helyettesítési
változóra: 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-15 FOR ciklus utasítás
>> példa
4-28 WHILE ciklus utasítás
3.rész:
PL/SQL eljárások
és
függvények: 8.fej.
PL/SQL Alprogramok
>> példa2-17
Változók hatásköre,
láthatósága, élettartalma
(2.fej. Alapok)
>> példa4-1
IF-THEN utasítás (például
már itt is volt
eljárás:
4.fej. Utasítások)
>> 8.1.
Alprogramokról áttekintés:
Miért van szükség alprogramokra,
előnyök
>> 8.5.fej.
Példák példa8-1
PL/SQL eljárásra és példa8-2
PL/SQL függvényre
>>
8.7.fej. Paraméterátadás; 8.9.fej.Túlterhelés
példa8-26
túlterhelésre példa
4.rész: DML utasítások programban, kurzorok
>> 6.fej.
Static SQL/Cursors
-- Ismétlés: lásd példa-2-25 2.6.2 SELECT INTO
>> példa-6-1
6.1.1 DML és TCL utasítások a programban, implicit
kurzor
>> példa-6-4
6.2.1.4 Implicit kurzor attribútumok SQL%ROWCOUNT
>> példa-6-6
6.2.2.3 Fetching, explicit kurzorok deklarálása
és használata
>> példa-6-11 6.2.2.6 Paraméteres explicit kurzorok
>> példa-6-17
6.2.2.7.4 Explicit kurzor attribútumok, c%ROWCOUNT
>> példa-6-18-példa-6-20 6.3.2. FOR LOOP utasítás Implicit kurzor, Explicit kurzor
>> példa-6-41
6.6.6.3 FOR UPDATE
kurzor módosításhoz
-- Figyelem! Ennek a
demó
példa lefuttatásánál a
PL/SQL blokk előtti
drop
table emp; create table emp as select * from hr.employees;
felülírja
az Oracle Példatár feladatainál
használt korábbi emp
táblát,
-- ezért emp
helyett emp_temp táblát célszerűbb
használjunk, vagy utána
az Oracle Példatár
feladataihoz: cr_dept_emp.txt
scriptet újra lefuttatjuk.
[Megj.: A
feladatsorban viszont
a korábbi táblákban
dolgozunk: createDolg] .
5.rész: PL/SQL
kivétel- és
hibakezelés >> 11.fej. Kivétel-és
hibakezelés
>>
táblázat-11-3
előre definiált kivételek
(Predefined Exceptions) Táblázat
>> példa-11-3
példa előre definiált NO_DATA_FOUND hiba
kezelésére
>> példa11-6
példa előre definiált ZERO_DIVIDE (egyszerű
névtelen blokk)
>> példa-11-10 példa
felhasználó által
definiált kivételekre)
--
Javítások: CREATE PROCEDURE helyett CREATE OR
REPLACE PROCEDURE
--
és az
utasításrészben, ahol
TO_DATE('01-JUL-2010',
'DD-MON-YYYY') kieg.:
TO_DATE('01-JUL-2010', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE =
American')
6.rész: PL/SQL
triggerek >> 9.
Triggerek
>> Constraints, triggerek
témakör szerepelt Adatbázisok-1
előadáson.
>> PL/SQL
triggerekre példákat lásd Oracle
Példatár
10.fej.Trigger.pdf
7.rész: PL/SQL
csomagok
>> 10.
Csomagok
>> Oracle
standard csomagokat lásd Oracle
Database PL/SQL Packages
-- DBMS_OUTPUT
=>> DBMS_OUTPUT.PUT_LINE eljárás
kiírás képernyőre;
-- DBMS_RANDOM
=>> DBMS_RANDOM.VALUE (AlsóHatár,
FelsőHatár) függvény:
a
véletlenszám-generátor
függvény RETURN
binary_integer típusú számot ad.