Gyakorlaton megoldandó kötelező feladat!!! ------------------------------------------ Hozzunk létre mind a két adatbázisban (ullman, aramis) egy GYAK11 nevű 2 oszlopos táblát, amely azoknak a dolgozóknak a nevét és fizetését tartalmazza, akik JONES-nak alárendeltjei (a beosztottai, azok beosztottai stb.), és a belépési dátumuk (BELEPES) későbbi, mint JONES-é. Határidő: a következő gyakorlat kezdete, mivel a megoldáshoz át kell nézniük a rekurzív lekérdezéseket. Az eddig elkészített kötelező feladataikat ellenőrizni tudják a következő SQL lekérdezés futtatásával: SELECT object_name "TABLE", created FROM user_objects WHERE object_type='TABLE' AND object_name LIKE 'GYAK%' ORDER BY object_name; =========================================================================== Rekurzív lekérdezésekkel megoldható feladatok --------------------------------------------- /* START WITH CONNECT BY Írjunk meg egy procedúrát, amelyik a NIKOVITS.VAGYONOK tábla alapján kiírja azoknak a személyeknek a nevét, akikre igaz, hogy van olyan leszármazottjuk, akinek nagyobb a vagyona, mint az illető vagyona. A kiírás név szerint rendezve történjen. */ CREATE OR REPLACE PROCEDURE gazdag_leszarmazott IS ... set serveroutput on execute gazdag_leszarmazott(); ----------------------------------------------------- /* Írjunk meg egy procedúrát, amelyik a NIKOVITS.VAGYONOK tábla alapján kiírja azoknak a személyeknek a nevét, vagyonát, valamint leszármazottainak átlagos vagyonát, akikre igaz, hogy a leszármazottainak átlagos vagyona nagyobb, mint az illető vagyona. A program tehát soronként 3 adatot ír ki: név, vagyon, leszármazottak átlagos vagyona. (név szerint rendezve) */ CREATE OR REPLACE PROCEDURE gazdag_leszarmazottak IS ... set serveroutput on execute gazdag_leszarmazottak(); ----------------------------------------------------- /* Írjunk meg egy procedúrát, amelyik a NIKOVITS.JARATOK tábla alapján kiírja azoknak az irányított köröknek a csomópontjait (városait), amelyek a paraméterként megadott várossal kezdődnek és végződnek. Elválasztó karakterként használjunk '-' karaktert. Példa egy kiírásra: Dallas-Chicago-Denver-Dallas */ CREATE OR REPLACE PROCEDURE kor_kereso(kezdopont VARCHAR2) IS ... set serveroutput on execute kor_kereso('Denver'); ----------------------------------------------------- /* Írjunk meg egy procedúrát, amelyik a NIKOVITS.VAGYONOK tábla alapján kiírja azoknak a nevét és városát, akiknek legalább 2 olyan felmenőjük van, akiknek ugyanaz a városa, mint az illetőnek. Az output név szerint legyen rendezve, elválasztó karakter a név és város között '-' karakter legyen. */ CREATE OR REPLACE PROCEDURE felmeno2 IS ... set serveroutput on execute felmeno2(); -----------------------------------------------------