我的Oracle DB版本是12.1.0.2.0.
我很难删除列标识.还试图删除列并使用purge命令删除表,但每次我得到相同的Oracle错误:
ORA-00600: internal error code, arguments: [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中引入.
最佳答案 这是Oracle 12.1.0.2.0的问题.至少有一个人有
reported it (on Windows, which may be relevant).
您遇到的错误是ORA-00600,它是Oracle未处理异常的默认消息,即Oracle错误.正确的答案是通过Oracle Support提出服务请求;如果您需要修复损坏的表,他们将能够为您提供补丁或解决方法.如果您没有支持合同,您可能会失去运气.
对于将来的参考,删除标识列是一个两个阶段的过程:
alter table t42 modify id drop identity;
alter table t42 drop column id;
碰巧,这不是最新版本产品的问题.在Oracle 18c中,我们可以放弃列而不先修改它. LiveSQL demo.