powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кто объяснит?
10 сообщений из 10, страница 1 из 1
Кто объяснит?
    #32093594
Лобастик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT A1 FROM A;
2
4
5

1 СЕССИЯ
SELECT * FROM A WHERE A1=2 FOR UPDATE;
1 ЗАПИСЬ

2 СЕССИЯ
SELECT * FROM A WHERE A1<>2 FOR UPDATE NOWAIT SKIP LOCKED;
0 ЗАПИСЕЙ

1. Почему?
2. Как сделать, чтоб второй запрос давал 2 записи?
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093601
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потомучто в первой сессии запрос заблокировал строки:FOR UPDATE.
Естественно, что в этом случае никто не сможет сделать тоже самое, например как в твоей второй сессии:
Код: plaintext
1.
SELECT * FROM A WHERE A1<> 2  FOR UPDATE NOWAIT SKIP LOCKED;


Что-бы первая сессия освободила ресурсы, надо или закрыть сессию или видимо сделать commit.
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093604
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя пардон. Не обратил внимание на разные условия.
А что такое SKIP LOCKED? Это в какой версии?
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093610
Лобастик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это все понятно...

вопрос в другом
первый for update по идее должен залочить одну запись....
второй две записи
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093612
Лобастик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
8i
9i
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093617
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот нашел:
http://www-kryo.desy.de/documents/Oracle/ora815nf_short.html#Skip%20locked%20rows%20with%20SKIP%20LOCKED

Интересно, что в родной документации не могу найти.
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093631
ЛОбастик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там же ясно сказано....

This means, that only unlocked rows will be displayed for all other sessions.
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093641
.dba
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, у меня все работает (Oracle 8.1.7.4)

Первая сессия:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
SQL> create table a (a1 number);

Tabelle wurde angelegt.

SQL> insert into a values( 2 );

 1  Zeile wurde erstellt.

SQL> insert into a values( 4 );

 1  Zeile wurde erstellt.

SQL> insert into a values( 5 );

 1  Zeile wurde erstellt.

SQL> commit;

Transaktion mit COMMIT abgeschlossen.

SQL> SELECT * FROM A WHERE A1= 2  FOR UPDATE;

        A1
 ----------
 
          2 

SQL>


Другая сессия:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SQL> SELECT * FROM A WHERE A1<> 2  FOR UPDATE NOWAIT SKIP LOCKED;

        A1
 ----------
 
          4 
          5 

SQL>
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093747
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Denis Popov: Вот-вот. В SQL Ref я не смог найти описания этого.
У меня "Oraclei SQL Reference Release 3 (8.1.7) September 2000 Part No. A85397-01"
...
Рейтинг: 0 / 0
Кто объяснит?
    #32093788
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже так и не нашел, но вон чего увидел: http://asktom.oracle.com/pls/ask/f?p=4950:8:1930241::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:1560590629334,%7Bskip%7D%20and%20%7Blocked%7D

И пугающие фразы:

It is not only "not" ANSI, it is
o not documented
o not supported
o not a good idea to use it.

Интересно, со временем эту фичу задокументируют, или она только "для служебного пользования"? 2Лобастик - очень смахивает на баг, какая версия оракла? Вряд ли ее можно пропачить, разве что случайно, или перейти на какую-нибудь другую версию, у нас на 9.2.0.1.0 EE, Linus SLES-7 все работает именно так, как незадокументированно:)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Кто объяснит?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]