Sobes.tech
Назад к вопросам
Middle
12

Явные и неявные курсоры — когда используются?

Компании, где спрашивали
МВидео/эльдорадо

Ответ от нейросети

sobes.tech AI

Явные курсоры используются, когда нужно более тонко контролировать обработку набора строк из результата запроса. Например, когда необходимо поочерёдно обрабатывать каждую строку, делать сложную логику или обновлять данные в цикле.

Неявные курсоры создаются автоматически для каждого SQL-запроса, который возвращает результат (например, SELECT INTO). Они удобны для простых операций, когда не нужен поэтапный контроль над выборкой.

Пример использования явного курсора в 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;
    -- обработка каждой строки
    DBMS_OUTPUT.PUT_LINE('Employee ' || v_emp_id || ': ' || v_salary);
  END LOOP;
  CLOSE c_emp;
END;