CREATE OR REPLACE TYPE OlvasoNev AS OBJECT ( Vezeteknev VARCHAR(20), Keresztnev VARCHAR(20), MEMBER FUNCTION nev_hun RETURN VARCHAR, MEMBER FUNCTION nev_eng RETURN VARCHAR ); CREATE OR REPLACE TYPE BODY OlvasoNev AS MEMBER FUNCTION nev_hun RETURN VARCHAR IS BEGIN RETURN( Vezeteknev || ' ' || Keresztnev); END; MEMBER FUNCTION nev_eng RETURN VARCHAR IS BEGIN RETURN( Keresztnev || ' ' || Vezeteknev); END; END; CREATE TYPE CimT AS OBJECT ( irszam NUMBER, helyseg VARCHAR(20), utca VARCHAR(20), hazszam NUMBER, MEMBER FUNCTION toString RETURN VARCHAR ); CREATE OR REPLACE TYPE BODY CimT AS MEMBER FUNCTION toString RETURN VARCHAR IS BEGIN RETURN( TO_CHAR(irszam) || ', ' || helyseg || ', ' || utca || ', ' || hazszam); END; END; CREATE TABLE Olvaso ( olvszam NUMBER PRIMARY KEY, nev Olvasonev, lakcim CimT ); CREATE TABLE Konyv ( konyvszam NUMBER PRIMARY KEY, szerzo Olvasonev, cim VARCHAR(50), olvszam NUMBER REFERENCES olvaso(olvszam), kivetel DATE ); INSERT INTO OLVASO VALUES (122, Olvasonev('Kiss', 'Istvan'), Cimt(6720, 'Szeged', 'Virag u.', 10)); INSERT INTO OLVASO VALUES (612, Olvasonev('Nagy', 'Agnes'), Cimt(6725, 'Szentes', 'Petofi ut', 38)); INSERT INTO OLVASO VALUES (355, Olvasonev('Toth', 'Andras'), Cimt(1111, 'Budapest', 'Jeg u.', 3)); INSERT INTO KONYV VALUES (1, Olvasonev('Katona', 'Endre'), 'Adatbazisok', 612, '13-jan.-10'); INSERT INTO KONYV VALUES (2, Olvasonev('Mate', 'Eors'), 'Assembly programozas', NULL, NULL); INSERT INTO KONYV VALUES (3, Olvasonev('Jokai', 'Mor'), 'Az arany ember', 122, '13-febr.-1'); INSERT INTO KONYV VALUES (4, Olvasonev('Gardonyi', 'Geza'), 'Egri csillagok', NULL, NULL); SELECT * FROM OLVASO, KONYV WHERE OLVASO.olvszam (+)= konyv.olvszam; SELECT k.szerzo.nev_hun(), k.cim FROM konyv k; SELECT o.olvszam AS olvasoszam, o.nev.nev_hun() AS Olvasonev, o.lakcim.toString() as Olvasocim, k.konyvszam AS Konyvszam, k.szerzo.nev_hun() AS Szerzo, k.kivetel AS Kivetel FROM OLVASO o, KONYV k WHERE o.olvszam (+)= k.olvszam; CREATE VIEW kolcsonzesek AS SELECT o.olvszam AS olvasoszam, o.nev.nev_hun() AS Olvasonev, o.lakcim.toString() as Olvasocim, k.konyvszam AS Konyvszam, k.szerzo.nev_hun() AS Szerzo, k.kivetel AS Kivetel FROM OLVASO o, KONYV k WHERE o.olvszam (+)= k.olvszam; SELECT o.olvszam AS olvasoszam, o.nev.nev_hun() AS Olvasonev, o.lakcim.toString() as Olvasocim, k.konyvszam AS Konyvszam, k.szerzo.nev_hun() AS Szerzo, k.kivetel AS Kivetel FROM OLVASO o, KONYV k WHERE o.olvszam (+)= k.olvszam and o.nev.nev_hun()='Kiss Istvan';