17,089
社区成员
发帖
与我相关
我的任务
分享
Bug 6791996 ORA-600 errors for a DELETE with self referencing FK constraint and BITMAP index This note gives a brief overview of bug 6791996. The content was last updated on: 01-FEB-2017 Click here for details of each of the sections below. Affects: Product (Component) Oracle Server (Rdbms) Range of versions believed to be affected Versions >= 9.2 but BELOW 11.2 Versions confirmed as being affected 11.1.0.7 11.1.0.6 10.2.0.5 10.2.0.4 10.2.0.3 9.2.0.8 Platforms affected Generic (all / most platforms affected) Fixed: The fix for 6791996 is first included in 11.2.0.1 (Base Release) Interim patches may be available for earlier versions - click here to check. Symptoms: Related To: Internal Error May Occur (ORA-600) ORA-600 [12700] ORA-600 [qertbFetchByRowID] ORA-600 [kdsgrp1] Bitmap Indexes Constraint Related Description An ORA-600 can be produced when deleting from a table with BITMAP index and Foreign Key Self-Referential constraint. ORA-600 examples are: ORA-600 [12700] ORA-600 [qertbFetchByRowID] ORA-600 [kdsgrp1] The associated trace file shows function delref in the call stack trace. eg: alter session set optimizer_index_cost_adj=1; create table t(c1 number(12) ,c2 varchar2(1),c3 number(12)) ; alter table t add constraint pk_t primary key(c1); alter table t add (constraint fk_c3 foreign key (c3) references t (c1)); create bitmap index bi on t (c2); insert into t values(100,'a',100); commit; delete from t where c1=100; ^ Shows the ORA-600 error. There is not a corruption in the index. eg: "analyze table validate structure cascade" does not produce an error for the bitmap index. Workaround 1. Create an index on the foreign key columns. or 2. Retry the delete operation in a new session.