All pastes #486402 Raw Edit

Something

public sql v1 · immutable
·published 2007-05-13 21:46 UTC
rendered paste body
--funktionskopf einfügen, kann alternativ auch direkt in der typdefinition gemacht werden--aber da diese am anfang steht wrid das hier per alter gemachtALTER TYPE pruefungsordnung_t     ADD MEMBER FUNCTION create_student(matnr number, name varchar2, vorname varchar2)     RETURN student_t  CASCADE;--funktionskörper erstellenCREATE OR REPLACE TYPE BODY pruefungsordnung_t AS    MEMBER FUNCTION create_student(matnr number, name varchar2, vorname varchar2)     RETURN student_t    AS        student student_t;     BEGIN      -- student object erstellung        student := student_t(matnr, name, vorname, ref(self), null, null, null, null);      -- in die db stellen        INSERT INTO student_tab VALUES(student);    -- zurückgeben        RETURN student;    END;END;  -- Select * from student_tab WHERE matrikelnummer = pruefungsordnung_tab.create_student(666,'dampf','hans').Matrikelnummer;--Aufgabe 2b--Erstelle eine Methode add_pruefung(p pruefung_t, note number), welche für einen Studierenden--für die angegebene Prüfung eine Note einträgt. Als Datum für die Prüfung soll das--aktuelle Datum gesetzt werden.--Testprogramm siehe Anhang BALTER TYPE student_t     ADD MEMBER PROCEDURE add_pruefung(p pruefung_t, n number) CASCADE; --funktionskörper erstellenCREATE OR REPLACE TYPE BODY student_t AS    MEMBER PROCEDURE add_pruefung(p pruefung_t, n number)     AS        note note_t;        student student_t;        pruefung ref pruefung_t;        arrayindex number;    BEGIN        pruefung := REF(p);         note := note_t(sysdate, n, pruefung);        arrayindex :=  self.Erbrachte_Pruefungsleistungen.count()+1;        self.Erbrachte_Pruefungsleistungen.extend();        self.Erbrachte_Pruefungsleistungen(arrayindex) := note;         UPDATE student_tab a SET a.Erbrachte_Pruefungsleistungen = self.Erbrachte_Pruefungsleistungen            WHERE a.Matrikelnummer = a.Matrikelnummer;      END;END;