Sobes.tech
Middle

Wann werden explizite und implizite Cursor verwendet?

sobes.tech KI

Antwort von AI

Explizite Cursor werden verwendet, wenn eine feinere Kontrolle über die Verarbeitung der Ergebniszeilen einer Abfrage erforderlich ist. Zum Beispiel, wenn jede Zeile nacheinander verarbeitet, komplexe Logik ausgeführt oder Daten in einer Schleife aktualisiert werden sollen.

Implizite Cursor werden automatisch für jede SQL-Abfrage erstellt, die ein Ergebnis zurückgibt (z.B. SELECT INTO). Sie sind praktisch für einfache Operationen, bei denen keine schrittweise Kontrolle der Auswahl notwendig ist.

Beispiel für die Verwendung eines expliziten Cursors in PL/SQL:

DECLARE
  CURSOR c_emp IS SELECT employee_id, salary FROM employees WHERE department_id = 10;
  v_emp_id employees.employee_id%TYPE;
  v_salary employees.salary%TYPE;
BEGIN
  OPEN c_emp;
  LOOP
    FETCH c_emp INTO v_emp_id, v_salary;
    EXIT WHEN c_emp%NOTFOUND;
    -- Verarbeitung jeder Zeile
    DBMS_OUTPUT.PUT_LINE('Mitarbeiter ' || v_emp_id || ': ' || v_salary);
  END LOOP;
  CLOSE c_emp;
END;