Dnes je: 21. května 2012

Ostatní

Autor knihy

Oracle Database 11g - Hotová řešení

Kdo je online

Právě připojeni - hostů: 14 a člen: 1 

Přihlásit se




ORA-08102: index key not found

Problém 35:

Z ničeho nic, mě nešel smazat objekt v databázi. Tak jsem musel zjistit o jaký objekt se jedná a provést analýzu daného objektu. Přičinou daných problému je, že některému řádku v tabulce chybí odpovídající řádek v indexu.

SQL> delete from tom.muj_objekt;
delete from tom.muj_objekt
*
ERROR at line 1:
ORA-08102: index key not found, obj# 4671482, file 6, block 1019132 (2)

SQL> select OWNER,OBJECT_NAME, OBJECT_TYPE from DBA_OBJECTS
where OBJECT_ID='4671482';
where OBJEC'4671482'
*
ERROR at line 2:
ORA-00920: invalid relational operator


SQL> select OWNER,OBJECT_NAME, OBJECT_TYPE from DBA_OBJECTS where OBJECT_ID=4671482;

OWNER
------------------------------
OBJECT_NAME
--------------------------------------------------------------------------------
OBJECT_TYPE
-------------------
tom
I_MUJ_OBJEKT
INDEX

SQL> SELECT TABLE_NAME FROM DBA_INDEXES WHERE INDEX_NAME='I_MUJ_OBJEKT' and owner='tom';

TABLE_NAME
------------------------------
T_MUJ_OBJEKT

Řešení:

V mém případě pomohlo provést analýzu a dropnout objekt. V jiných případech je potřeba smazat tabulku a vytvoři ji znovu. Naplnit daty pomocí exp/imp a následně udělat i nový index.
SQL> ANALYZE TABLE tom.T_MUJ_OBJEKT VALIDATE STRUCTURE CASCADE;

Table analyzed.


Více na My Oracle Suport:
ORA-8102 CORRUPT INDEX, ORA-1499 EVEN AFTER DROPPING AND RECREATING INDEX [ID 1081343.6]

 

Anketa

Využívají vaše databáze pro ukládání souborů ASM? (automatic storage management)
 

Certifikát Oracle Certifikát Oracle Certifikát Oracle Certifikát Oracle Certifikát Oracle Certifikát Oracle

Partnerské internetové stránky:
www.oracledba.cz www.asktom.cz www.tomas-solar.cz