CftClub.ru
Клуб специалистов ЦФТ-Банк

Выбор не заблокированных элеменлтов

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
Phill
Участник


Вступление в Клуб: 09.07.2010
СообщениеПт Авг 30, 2013 16:45   Выбор не заблокированных элеменлтов Ответить с цитатой
Полезность: Нет оценки
Добрый день!

Необходимо из таблицы выбрать только те элементы, которые не заблокированы, при этом не блокировать их.
Пример
Есть простая операция в типе [USER] текст:
Код:

begin
   this%lock;
   utils.sleep(60);
end;

Нужно выбрать все элементы кроме этого
Если делать:
Код:

select  a1.ID from z#USER a1
 for update of a1.ID skip locked;

то в выборку попадут все элементы кроме этого, но при этом они будут заблокированы, а этого не надо.
Подскажите как быть?
yaffil
Профи


Вступление в Клуб: 18.08.2011
СообщениеПт Авг 30, 2013 17:00   Re: Выбор не заблокированных элеменлтов Ответить с цитатой
Полезность: Нет оценки
Phill пишет:

Код:

 for update



Собственно у вас и написано, чтобы заблокировать. Зачем вам for update в селекте, если хотите просто моментальный снимок таблицы
Phill
Участник


Вступление в Клуб: 09.07.2010
СообщениеПт Авг 30, 2013 17:02    Ответить с цитатой
Полезность: Нет оценки
Собственно for update и не нужен, я в качестве примера написал
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПн Сен 02, 2013 09:25    Ответить с цитатой
Полезность: Нет оценки
Ну на крайняк можно конечно в цикле перебрать типа rtl.check_lock() но красивей конечно одним селектом...
maestro
Профи


Вступление в Клуб: 12.10.2010
СообщениеПн Сен 02, 2013 14:19    Ответить с цитатой
Полезность: Нет оценки
Phill пишет:
Собственно for update и не нужен, я в качестве примера написал

Можно после select for update выполнить rollback или commit. Это снимет блокировки.
Селект делать в автономной транзакции, дабы не затронуть рабочую транзакцию.
Phill
Участник


Вступление в Клуб: 09.07.2010
СообщениеПн Сен 02, 2013 15:30    Ответить с цитатой
Полезность: Нет оценки
Да, вариант такой был. Попробовал, вроде работает.
Если больше вариантов не будет, то так и оставлю.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах