Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice.

Podobné prezentace


Prezentace na téma: "Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice."— Transkript prezentace:

1 Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa (tomas.vana@student.upce.cz) Fakulta elektrotechniky a informatiky Univerzita Pardubice

2 Obsah cvičení -Práce s DBMS_OUTPUT. -Explicitní a implicitní kurzory. -Kurzory s parametrem. -Záznamy. -Definice procedur. Databázové systémy 2 – cvičení 6 2

3 Cvičení 6 Základní používání DBMS_OUTPUT: DECLARE i_text VARCHAR2(100) DEFAULT 'Ahoj světe!'; i_cislo NUMBER(10,8); BEGIN dbms_output.put_line(i_text); i_text := NULL; dbms_output.put_line(i_text); i_cislo := 22/7; dbms_output.put_line(i_cislo); i_text := 'Nový text'; i_text := i_text || ' ' || i_cislo; dbms_output.put_line(i_text); END; / Databázové systémy 2 – cvičení 5 3 Databázové systémy 2 – cvičení 6 3

4 4 Cvičení 6 Příklad používání DBMS_RANDOM: DECLARE x PLS_INTEGER; rn NUMBER(20); BEGIN SELECT hsecs INTO rn FROM gv$timer; dbms_random.initialize(rn); FOR i IN 1..20 LOOP x := dbms_random.random; dbms_output.put_line(x); rn := x; END LOOP; dbms_random.terminate; END; /

5 Procedury Procedura je posloupnost příkazů, které se provedou v okamžiku spuštění procedury. Na základě vstupních parametrů jsou vráceny výsledky v podobě výstupních parametrů. Syntaxe CREATE [OR REPLACE] PROCEDURE [( )] AS … deklarační sekce …………………………. BEGIN … výkonná sekce …………………………. EXCEPTION … sekce pro zpracování výjimek …………………………. END; Databázové systémy 2 - př. 4, 5 5

6 Procedury Příklad definice procedury CREATE [OR REPLACE] PROCEDURE zvyseni_mzdy (procento IN NUMBER) AS BEGIN UPDATE pracovnici SET mzda = mzda * (1+procento/100); END; Příklad spuštění procedury EXECUTE zvyseni_mzdy(6); nebo EXEC zvyseni_mzdy(6); nebo BEGIN zvyseni_mzdy(6); END; Databázové systémy 2 - př. 4, 5 6

7 Databázové systémy 2 – cvičení 6 7 Cvičení 6 – Příklad I -Vytvořte proceduru cv6_nastav_platy, která vloží záznamy do tabulky cv6_trpaslici_plat(id_trpaslika NUMBER(2,0),plat NUMBER(8,2)), kterou si vytvoříte ve vašem schématu. -Tabulka cv6_trpaslici_plat bude obsahovat kromě identifikátoru trpaslíka i jeho vypočtený plat. Plat bude vypočten tak, že za každý skutečně vytěžený kg v období 5.2.2006 – 25.2.2006 obdrží trpaslík 1,25 zlaťáku. Výjimkou jsou trpaslíci, jejichž výška je méně než 110 cm, ti obdrží paušálně navíc 30 zlaťáků. Pro naplnění tabulky využijte explicitního kurzoru. Kromě toho procedura navíc vypíše na výstupní zařízení informaci o tom, kolik bylo trpaslíkům celkem vyplaceno. Viz ukázka: Výdaje: 4323,75

8 Databázové systémy 2 – cvičení 6 8 Cvičení 6 – Příklad II -Vytvořte proceduru cv6_min_max_plat, která na výstup vypíše trpaslíky, jejichž mzda byla nejnižší a nejvyšší. -Pro údaje o mzdě trpaslíka využijte vámi naplněnou tabulku cv6_trpaslici_plat. -Výstup by měl být v následujícím formátu: Nejvyšší plat: Rypal - 808,75 zlatých Nejnižší plat: Brucoun - 356,25 zlatých

9 Databázové systémy 2 – cvičení 6 9 Cvičení 6 – Příklad III -Vytvořte proceduru cv6_trpaslik_vlastnosti. -Procedura bude vkládat záznamy do tabulky cv6_trpaslici_vlastnosti(jmeno VARCHAR2(20), vlastnosti VARCHAR2(100)), kterou si vytvoříte ve vlastním schématu. Pro každého trpaslíka vznikne v tabulce jeden záznam (i kdyby žádné vlastnosti trpaslík neměl), který bude obsahovat jeho jméno a zřetězený seznam vlastností oddělený středníkem (vlastnost1;vlastnost2;…;). -Pro naplnění tabulky využijte implicitní kurzory. -Příklad z naplněné tabulky:

10 Databázové systémy 2 – cvičení 6 10 Cvičení 6 – Příklad IV -Vytvořte proceduru CV6_LIDE_SEZNAM(P_VEK IN NUMBER, P_POHLAVI IN VARCHAR2). -Procedura bude vypisovat seznam lidí z tabulky A_CLOVEK.lide dle zadaných parametrů. Parametr p_vek udává minimální věk vypisovaného člověka a p_pohlavi udává jeho pohlaví. -Zároveň ošetřete (pomocí výjimky) případ, kdy proceduře budou předány neplatné parametry. Za platné parametry se považuje věk mezi 0 až 120 lety a pohlaví může nabývat hodnot M a F. Text vypsaný při vyvolání výjimky bude: „Zadány špatné parametry!“. -Výpis bude seřazen vzestupně podle příjmení a jména. -Výpis:

11 Databázové systémy 2 – cvičení 6 11 Cvičení 6 – Zásady pro vypracování -Dodržujte názvy objektů i jejich atributů přesně dle zadání. -Pro příklady I-III využívejte jako zdroj dat schéma A_SNEHURKA. -V příkladech v nichž vkládáte data do vašich tabulek, nezapomínejte vámi vložená data potvrzovat (COMMIT). -U procedur, které vkládají data do tabulek, je vhodné provést vymazaní všech dat z cílových tabulek před samotným vkládáním nových dat. Předejdete tím vzniku duplicitních záznamů způsobených opakovaným spouštěním procedur.

12 Cvičení 6 – kontrola Všechny databázové objekty z tohoto cvičení vytvořte se svém schématu. Pro splnění cvičení je nutné, aby všechny objekty byly správně vytvořeny a funkční do půlnoci dne před následujícím cvičením. Databázové systémy 2 – cvičení 6 12


Stáhnout ppt "Databázové systémy 2 Cvičení č. 6 Ing. Tomáš Váňa Fakulta elektrotechniky a informatiky Univerzita Pardubice."

Podobné prezentace


Reklamy Google