DECLARE PROCEDURE prepareNextSemester IS cur_student INT; cur_study INT; cur_subject INT; cur_semester smallINT; cur_subject_desc VARCHAR(50); first_student INT; last_student INT; first_study INT; last_study INT; tmp_semester INT := 0; -- TYPE student_table IS TABLE OF studenten%ROWTYPE; -- all_students student_table; -- TYPE subject_table IS TABLE OF unterricht%ROWTYPE; -- all_subjects subject_table; BEGIN --DBMS_OUTPUT.PUT_LINE('Well well, first index is ' || all_students.first); SELECT MIN(personen_id), MAX(personen_id) INTO first_student, last_student FROM studenten; DBMS_OUTPUT.PUT_LINE('Max students... ' || first_student); DBMS_OUTPUT.PUT_LINE('Min students... ' || last_student); FOR i IN first_student .. last_student LOOP BEGIN SELECT personen_id, studium_id, aktsemester INTO cur_student, cur_study, cur_semester FROM studenten WHERE personen_id = i; DBMS_OUTPUT.PUT_LINE('Current person... ' || i || ', current study ' || cur_study || ' currsemester' || cur_semester); BEGIN IF tmp_semester != 0 THEN tmp_semester := cur_semester; END IF; tmp_semester := cur_semester+1; DBMS_OUTPUT.PUT_LINE('Semster... ' || tmp_semester); SELECT MAX(unterricht_id), MIN(unterricht_id) INTO first_study, last_study FROM studien s INNER JOIN faecher f ON f.studium_id = s.STUDIUM_ID INNER JOIN unterricht u ON u.fach_id = f.FACH_ID WHERE s.STUDIUM_ID = cur_study AND f.semester = tmp_semester; DBMS_OUTPUT.PUT_LINE('First study: ' || first_study || ' - Last Study: ' || last_study); FOR x IN first_study .. last_study LOOP BEGIN DBMS_OUTPUT.PUT_LINE('person ' || i || ', current study ' || x); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Fuck ya all!!'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Fuck ya all!!'); END; END LOOP; END; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('No data found'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('No data found'); END; END LOOP; EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('Damned, come on, wrong SQL'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('well i guess others'); END;BEGIN prepareNextSemester();END;