All pastes #45396 Raw Edit

Someone

public text v1 · immutable
#45396 ·published 2006-03-12 20:21 UTC
rendered paste body
CREATE OR REPLACE PROCEDURE prepareNextSemester IS
    cur_student INT;
    cur_study INT;
    cur_subject INT;
    cur_subject_desc VARCHAR(50);
    first_student INT;
    
    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 * BULK COLLECT INTO all_students FROM studenten;
        -- FOR i IN all_students.first .. all_students.last LOOP
        --    DBMS_OUTPUT.PUT_LINE('Current person... ' || all_students(i).personen_id);
        -- END LOOP;
        -- selecting all students into all_students collection
        FOR i IN all_students.first .. all_students.last LOOP
            BEGIN
                SELECT u.* BULK COLLECT INTO all_subjects 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 = all_students(i).studium_id;
                
                FOR x IN all_subjects.first .. all_subjects.last LOOP
                    BEGIN
                        SELECT kbz INTO cur_subject_desc FROM unterricht u
                        INNER JOIN faecher f ON f.fach_id = u.fach_id
                        WHERE all_subjects(x).unterricht_id = u.unterricht_id;
                        -- DBMS_OUTPUT.PUT_LINE('Current subject ' || cur_subject_desc);
                    EXCEPTION
                        WHEN NO_DATA_FOUND THEN
                            DBMS_OUTPUT.PUT_LINE('No subject with found!');
                    END;
                END LOOP;
            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;