|
|
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
Добрый день ! Вопрос, конечно ламерский, но все же: 1. Как в Oracle заблокировать отдельную запись в таблице ? 2. Как проверить, что эта запись заблокирована ? Заранее thanks. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 16:48 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
Вопрос не раз обсуждался, поищи. DBMS_LOCK копай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 16:51 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
Можно например select ... for update. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 16:57 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
2 LG >Вопрос не раз обсуждался, поищи. >DBMS_LOCK копай. а как, интересно, с помощью dbms_lock можно заблокировать запись в таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 17:14 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
to .dba А вот если есть например таблица emp(emp_name, ...) и известно что некоторые ее записи заблокированы. Можно получить их список типа Код: plaintext 1. итд.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 17:36 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
Предлагал когда-то кто-то способ "руками": открываешь курсор по всей таблице, потом по очереди пытаешься каждой записи сказать select ... for update nowait. Если получишь отлуп- значит, запись заблокирована. Только вот кем- не совсем понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 17:41 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
>>а как, интересно, с помощью dbms_lock можно заблокировать запись в таблице? Извиняюсь, select for update конечно же ... Но посмотрев, что olga1999 пишет еще и в форум Delphi, посоветовал ей блокировать сущности (=записи) при помощи DBMS_LOCK. Т.е. лочить/унлочить запись на клиенте DBMS_LOCK.REQUEST/DBMS_LOCK.RELEASE. Пишется процедура, для блокировки/разблокировки сущности на основе DBMS_LOCK.REQUEST/DBMS_LOCK.RELEASE. Если мы начинаем редактировать например карточку сотрудника, запрашиваем блокировку у процедуры, редактируем, релизим блокировку. При попытке повторной блокировки сущьности(=записи) получаем отлуп. Я про это ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2003, 18:03 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
а ещё есть такая фишка пользователь 1 select ... from ... for update пользователь 2 select ... from ... skip locked ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2003, 10:47 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
to hinotf Классно. Можно заблокированные записи тогда просто через MINUS получить. Правда есть один нюанс - у меня работает skip locked только в купе с for update Код: plaintext а так Код: plaintext 1. 2. 3. 4. Однако это и логично - когда делаешь просто select, то skip locked ни к чему. Чтению в Оракл ничего не машает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2003, 11:04 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
Помни только об одном: "skip locked" - фича недокументированная . Со всеми вытекающими. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2003, 11:49 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
Как блокировать, теперь понятно. Как разблокировать запись ?. Я пользуюсь Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2003, 13:12 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
1) commit 2) rollback ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2003, 13:21 |
|
||
|
Блокировка записи в Oracle
|
|||
|---|---|---|---|
|
#18+
>to .dba > >А вот если есть например таблица emp(emp_name, ...) и известно что >некоторые ее записи заблокированы. Можно получить их список типа думаю, что простым запросом через системные пердставления нельзя. По-крайней мере я такого способа не знаю :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2003, 14:26 |
|
||
|
|

start [/forum/topic.php?fid=52&gotonew=1&tid=1990665]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 532ms |

| 0 / 0 |
