PL/SQL FOR-SCHLEIFE IMPLIZITE CURSOR

Gibt es 2 Tabellen EMPLOYEES und DEPARTMENTS mit department_id als Primärschlüssel für DEPARTMENTS - und foreign key auf EMPLOYEES.

Will ich drucken alle Namen der Mitarbeiter, gehören zu einer bestimmten Abteilung. Ich weiß, es kann einfach erreicht werden durch Beitritt oder EXPLICIT Cursor.
Ich dachte, warum nicht versuchen, mit FOR-Schleife und eine IMPLICIT Cursor.

Meine Frage ist, ob es syntaktisch korrekt zu schreiben INTO wie diese. Wenn dem so ist, warum ist nicht die Zuordnung aller Werte?

DECLARE
    emp_dept_id employees.department_id%TYPE;
    emp_emp_id employees.employee_id%TYPE;
    emp_last_name employees.last_name%TYPE;
    dept_dept_id departments.department_id%TYPE;
    dept_dept_name departments.department_name%TYPE;
    v_count number DEFAULT 0;
BEGIN
    FOR i IN (SELECT DISTINCT department_id, department_name
                INTO dept_dept_id, dept_dept_name
        FROM departments)
    LOOP
        --v_COUNT := v_COUNT + 1;
        DBMS_OUTPUT.PUT_LINE('HELLO'||dept_dept_id||' '||dept_dept_name);
        FOR j IN (SELECT employee_id, last_name
            INTO emp_emp_id, emp_last_name
            FROM employees)
            --WHERE department_id=dept_dept_id)
        LOOP
            DBMS_OUTPUT.PUT_LINE(emp_emp_id||' '||emp_last_name);
            v_COUNT := v_COUNT + 1;
        END LOOP;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE(v_COUNT);
END;

InformationsquelleAutor qasim.hasnain | 2013-04-06

Schreibe einen Kommentar