Что такое cursor и как им пользоваться?

Cursor (курсор) в SQL — это объект базы данных, который позволяет поочерёдно проходить по строкам результата запроса и работать с ними построчно.


Зачем нужен

  • Когда нужно обрабатывать результат не сразу целиком, а пошагово.

  • Удобен для сложных процедур, где на каждую строку надо выполнить дополнительную логику (например, вычисления, вставки в другие таблицы).

  • Используется в хранимых процедурах и триггерах.


Как работает

  1. Объявление курсора (cursor) для SQL-запроса.

  2. Открытие курсора (open).

  3. Чтение строк по одной (fetch).

  4. Закрытие курсора (close).

  5. Освобождение ресурсов (deallocate).


Пример (SQL Server / PostgreSQL синтаксис немного разный)

SQL Server:


PostgreSQL (через PL/pgSQL):


Важный момент

  • Курсоры тяжёлые и медленные по сравнению с обычными SQL-операциями.

  • Их стараются избегать, заменяя на JOIN, агрегаты, оконные функции.

  • Но бывают задачи, где построчная обработка необходима.

Last updated