Из документов Oracle:
ENABLE TABLE LOCK Указать ENABLE TABLE
LOCK для включения блокировки таблицы, тем самым
разрешить операции DDL на столе.
Все выполняемые в настоящее время транзакции
должен зафиксировать или откатить до Oracle
База данных включает блокировку таблицы.
Обратите внимание, что в нем не указано "Все выполняющиеся в настоящее время транзакции , которые используют таблицу ". Я не уверен, действительно ли это означает, что не может быть никаких незавершенных транзакций во всем экземпляре, но это может иметь место.
Попробуйте избавиться от всех сеансов, обращающихся к базе данных, особенно от всех, в которых транзакция может быть открыта для этой таблицы. Если вы по-прежнему получаете сообщение об ошибке, перезапуск экземпляра может помочь.
Обновление : Похоже, вам может понадобиться помощь службы поддержки Oracle. Но я выполнил поиск на сайте поддержки и нашел несколько заметок о возможных причинах этого. Может возникнуть сомнительная распределенная транзакция, касающаяся стола. Посмотрите, возвращают ли эти запросы что-нибудь, и если да, то вам нужно разрешить эти ожидающие транзакции:
SELECT * FROM DBA_2PC_PENDING;
SELECT * FROM DBA_2PC_NEIGHBORS;