create procedure berechneVorlesungen() -- lege Prozedur an begin declare are done int default 0; -- boolsche Variable declare prof_name CHAR(16); -- Variable fuer Prof-Name declare prof_curser cursor for -- definiere Cursor mit select p.name -- SQL-Abfrage from Professoren p, Vorlesungen v where p.persnr = v.gelesenvon; declare continue handler -- Continue Handler for sqlstate '02000' set done = 1; -- beendet Schleife update Professoren -- Attribut bei allen Profs set anzVorlesungen = 0; -- zuruecksetzen open prof_curser; -- Cursor ausfuehren repeat -- while-schleife fetch prof_curser into prof_name; -- hole naechsten Prof-Namen if not done then -- solange noch ein Name vorhanden update Professoren -- erhoehe anzVorlesungen set anzVorlesungen = -- des entsprechenden Profs anzVorlesungen + 1 where name = prof_name; end if; until done end repeat; -- Ende while-Schleife close prof_curser; -- Cursor schliessen end $$