Вопрос: Удаление идентификатора таблицы вызывает ошибку ORA-00600 в Oracle 12c


Моя версия Oracle DB - 12.1.0.2.0.

Мне трудно удалить идентификатор столбца. Также попытался удалить столбец и сбросить таблицу командой purge, но каждый раз, когда я получаю ту же ошибку Oracle:

ORA-00600: внутренний код ошибки, аргументы: [12811], [96650], [], [], [], [], [], [], [], [], [], []

Просто не могу коснуться столбца идентификации. Я пробовал команды, но не повезло:

ALTER TABLE DYS_CATEGORY MODIFY CATEGORY_ID DROP IDENTITY;

ALTER TABLE DYS_CATEGORY DROP COLUMN CATEGORY_ID;

DROP TABLE DYS_CATEGORY PURGE;

Я могу удалить любой столбец из таблицы, но проблема в том, что столбец идентификации ,

Столбцы идентичности являются новыми для Oracle, только что введенные в 12c.


4


источник


Ответы:


Это проблема с Oracle 12.1.0.2.0. По крайней мере один другой человек имеет сообщила об этом (в Windows, что может быть актуальным) ,

У вас есть сообщение ORA-00600, которое является сообщением Oracle по умолчанию для необработанных исключений, то есть ошибок Oracle. Правильный ответ заключается в том, чтобы поднять запрос на обслуживание с помощью Oracle Support; они смогут предоставить вам патч или обходной путь, если у вас есть поврежденная таблица, которую вам нужно исправить. Если у вас нет контракта на поддержку, вам может быть не повезло.

Для дальнейшего сокращения ссылок identity столбцы - двухэтапный процесс:

alter table t42 modify id drop identity;

alter table t42 drop column id;

Как это бывает, это не проблема в самой последней версии продукта. В Oracle 18c мы можем просто удалить столбец, не изменяя его в первую очередь. Демо-версия LiveSQL ,


1