Любые невыбранные запросы не выполняются в Oracle - PullRequest
0 голосов
/ 27 июня 2019

Итак, я могу успешно выполнить любой оператор SELECT, но любые операторы UPDATE просто зависают, пока не истечет время ожидания.Это происходит при попытке выполнить любые хранимые процедуры.Другие пользователи, которые подключаются к базе данных, могут запускать что угодно, не сталкиваясь с этой проблемой.

Существует ли кэш для каждого пользователя, который я могу выгружать, или что-то в этом роде?Мне обычно надоедает ожидание и я отменяю операцию, поэтому я не знаю, способствовало ли это возникновению проблемы.

Просто для справки, все так просто:

UPDATE SOME_TABLE
SET SOME_COLUMN = 'TEST';

EXECUTE SOME_PROCEDURE(1234);

Но это работает:

SELECT * FROM SOME_TABLE; -- various WHERE clauses don't cause any problems.

1 Ответ

2 голосов
/ 28 июня 2019

По моему опыту, это происходит чаще всего, потому что на столе есть еще одна незафиксированная операция. Например: Пользователь 1 успешно выпускает обновление, но не фиксирует его и не откатывает. Пользователь 2 (или даже другой сеанс пользователя 1) выпускает другое обновление, которое просто зависает, пока другое ожидающее обновление не будет зафиксировано или откатано. Вы говорите, что «другие пользователи» не имеют такой же проблемы, что заставляет меня задуматься, совершают ли они свои изменения. И если так, если они обновляют ту же таблицу или другую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...