This article demonstrates how to reproduce ORA-02475 error , and explains why it happens and how to resolve this issue.
- Create cluster tables and indexes.
SQL> CREATE CLUSTER emp_dept (deptno NUMBER(3)) TABLESPACE users;
Cluster created.
SQL> CREATE TABLE dept
(
deptno NUMBER(3) PRIMARY KEY,
deptname VARCHAR2(15) NOT NULL
)
CLUSTER emp_dept (deptno);
Table created.
SQL> CREATE TABLE emp
(
empno NUMBER(10) PRIMARY KEY,
ename VARCHAR2(15) NOT NULL,
deptno NUMBER(3) REFERENCES dept
)
CLUSTER emp_dept (deptno);
Table created.
SQL> CREATE INDEX emp_dept_index
ON CLUSTER emp_dept
TABLESPACE users ;
Index created.
SQL> insert into dept values ( 1,'DEPT1 1');
1 row created.
SQL> insert into dept values (2,'DEPT1 2');
1 row created.
SQL> insert into dept values (3, 'DEPT1 3');
1 row created.
SQL> commit;
Commit complete.
2. Insert records into cluster table EMP until gets ORA-02475 error.
SQL> set serveroutput on;
begin
for i in 1 .. 1000000000
loop
begin
insert into emp values (i,'emp '||i, 3);
commit;
exception
when others
then
dbms_output.put_line( SQLERRM );
exit;
end;
end loop;
end;
/
ORA-02475: maximum cluster chain block count of 65534 has been exceeded
PL/SQL procedure successfully completed.
Subscribe to get access
Read more of this content when you subscribe today.