Курсор базы данных — это объект базы данных, который позволяет тебе извлекать и обрабатывать строки из результирующего набора по одной строке за раз, а не все сразу. По сути, он действует как указатель, который последовательно проходит по результатам запроса.
STATIC — Создаёт снимок данных; изменения, внесённые в исходную таблицу, не отражаютсяDYNAMIC — Отражает все изменения, внесённые в исходную таблицу, пока курсор открытFORWARD_ONLY — Движется только в одном направлении; обычно самый производительный вариантKEYSET — Принадлежность и порядок фиксируются при открытии, но изменения значений отражаютсяКурсоры подходят, когда:
Курсоры обычно не рекомендуются, потому что они:
Предпочитай наборо-ориентированные альтернативы:
JOIN, GROUP BY, оконные функции (ROW_NUMBER, RANK),
или batch UPDATE/INSERT операции
Хорошая практика — всегда сначала искать наборо-ориентированное решение, и обращаться к курсорам только тогда, когда без них действительно не обойтись.
Курсор DYNAMIC отражает все изменения в исходной таблице, пока он открыт, в то время как STATIC курсор делает снимок и не показывает эти изменения.
Новый — ещё не проверен сообществом
Вы