Конструкция курсора позволяет помимо оперирования наборами дан-
ных таблиц выполнять и
модификацию информации таблиц. Для этого
используются две дополнительных конструкции:
FOR UPDATE [OF столбец1, столбец2…] [NOWAIT]
указываемая в операторе SELECT, который определяет строки форми-
руемого активного набора, и
WHERE CURRENT OF имя_курсора
которая указывается в операторах UPDATE или DELETE, выполняемых
в процессе выборки и обработки строк из активного набора.
В обычной ситуации строки, выбираемые в активный набор, не бло-
кируются, и любой другой пользователь может осуществить их модифи-
кацию в БД. Если после этого закрыть и вновь открыть курсор, то полу-
чаешь доступ к новым, модифицированным строкам.
При использовании варианта FOR UPDATE с перечнем столбцов
блокируется доступ других пользователей к указанным столбцам, но и
обновлять информацию можно только в этих столбцах. Если же исполь-
зуется FOR
UPDATE без перечня столбцов, то блокируется вся таблица,
а значит, обновлять можно информацию, хранящуюся в любых столбцах
таблицы.
Достарыңызбен бөлісу: