2015-02-09 57 views
3

我在SQL Developer中编辑了一个表,将其标识列从0开始改变。按ok后,我不能再更改标识列,我甚至不能删除表因为这个。我收到错误消息:无法删除表SQL错误:ORA-00600

SQL Error: ORA-00600: internal error code, arguments: [12811], [92006], [], [], [], [], [], [], [], [], [], [] 
00600. 00000 - "internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]" 

将0放在标识列的起始位置始终会导致此错误。

如何删除此表?

编辑: 所以这是代码:

CREATE TABLE T1(ID NUMBER GENERATED ALWAYS AS IDENTITY); 
ALTER TABLE T1 MODIFY ID GENERATED ALWAYS AS IDENTITY; --fine 
ALTER TABLE T1 MODIFY ID GENERATED ALWAYS AS IDENTITY START WITH 0; --SQL Error: ORA-00600  and you can no longer drop table or alter column 
+0

请发布您的代码 – Matt 2015-02-09 16:01:52

+3

甲骨文表示,如果发生600错误,您应该联系他们:http://www.orafaq.com/wiki/ORA-00600我现在很好奇。 – HoneyBadger 2015-02-09 16:09:21

+0

看起来可能与bug 18744247有关;但是,是的,您需要联系Oracle并提出服务请求(当然,假设您有支持合同)。看到用于创建,修改和删除的命令仍然很有趣 - 如果仅仅知道要避免什么。 – 2015-02-09 16:15:32

回答

1

我已经遇到此问题偶尔会因为频繁ALTER TABLE table MODIFY identity_column GENERATED BY ...报表(因为我需要)。我通过重命名原始表格(它工作正常),创建一个新表格(使用正确的名称)并将所有数据移动到新表格中来解决此问题。