Компиляция хранимой процедуры зависает Oracle SQL Developer
я столкнулся с необычной проблемой в Oracle SQL Developer. Когда я пытаюсь скомпилировать процедуру хранилища, она зависает на экране разработчика Oracle SQL, и я не могу выполнить никаких действий, кроме как убить экземпляр разработчика SQL и начать снова.
но та же проблема. Кто-нибудь сталкивался с такой проблемой? Я новичок в oracle.
вот некоторые дополнения к проблеме я ждал от 5 до 10 минут и получил эту ошибку
ORA-04021 timeout occurred while waiting to lock object
но я единственный человек, работающий на этой экземпляр Oracle
2 ответов
одна из ваших предыдущих попыток создать процедуру, которую вы убили, все еще застряла и активна. Вам нужно убить этот сеанс Oracle, используя http://www.oracle-base.com/articles/misc/KillingOracleSessions.php
другим источником этой ошибки является другой процесс в вашей базе данных, выполняющий процедуру во время ее компиляции. Используйте этот запрос, чтобы выяснить, какой процесс выполняется это:
select sess.sid, sess.username, sql_text
from v$sqlarea sqlarea, v$session sess
where sess.sql_hash_value = sqlarea.hash_value
and sess.sql_address = sqlarea.address
and sess.username is not null;
запрос v$locked_object
чтобы узнать, используются ли какие-либо объекты, которые в настоящее время заблокированы хранимой процедурой. Если это так, отследите запрос / модуль, который заблокирован и завершите запрос.
ссылка, данная Томасом, дает подробную информацию о том, как убить сеанс, как только сеансы будут убиты & v$locked_object
не показывает записей, вы должны быть в состоянии скомпилировать штраф.