| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: About ORA-08102 in Oracle Enterprise Edition Release 8.0.4.0.0
Just suffered last week from the same ora-error, on Oracle 7.3.4. In our
case the database was corrupt.
From the accompanying message it looks like yours is too.
We couldn't even export!
If you have a valid backup, you should call support and/or run the dbverify
utilitiy on your database.
Hth,
--
Sybrand Bakker, Oracle DBA
<ehdeza_at_my-deja.com> wrote in message news:7s4o4m$133$1_at_nnrp1.deja.com...
> The Server return the following error :
>
> Oracle ERROR (0): "ORA-08102: index key not found, obj# 6627, dba
> 469762784 (2)
> "
> Last ORACLE SQL statement : 0 delete  from mic_cliente  where rowid = :x
>
> with the following function, in the sentence EXEC SQL  DELETE
> mic_cliente  WHERE CURRENT OF CursorCliente:
>
> ProcesoCliente()
>
> {
>    EXEC SQL DECLARE CursorCliente CURSOR FOR
>              SELECT
> cdef_pais,cdef_entidad,cdef_region,cdef_zona,cdef_sucursal,
>                     cdef_cliente_nuevo,cdef_cliente_viejo
>                FROM mic_cliente
>                 FOR UPDATE;
>
>    EXEC SQL OPEN CursorCliente;
>
>   if ( ChecaErrorOracle(0,1,&rowcount) != GFI_ERRC_OK)
>           {
>            printf("%s MIC_CLIENTE\n",Error232);
>            desconecta_db();
>            exit(1);
>           }
>
>    for (;;)
>    {
>       EXEC SQL FETCH CursorCliente
>                 INTO :tmp_pais, :tmp_ent, :tmp_reg, :tmp_zona, :tmp_suc,
>                      :tmp_nuevo, :tmp_viejo;
>       result = ChecaErrorOracle(0,1,&rowcount);
>
>       if (result != GFI_ERRC_OK)
>       {
>          break;
>       }
>       else
>       {
>
>       EXEC SQL SELECT COUNT(*)
>                  INTO :cuenta
>                  FROM mic_relcta
>                 WHERE rela_cliente_nuevo = :tmp_nuevo;
>
>          result = ChecaErrorOracle(0,1,&rowcount);
>
>          if (cuenta==0)
>          {
>             strncpy(nuevo_reg.sPais,tmp_pais,2);
>             strncpy(nuevo_reg.sEntidad,tmp_ent,2);
>             strncpy(nuevo_reg.sRegion,tmp_reg,2);
>             strncpy(nuevo_reg.sZona,tmp_zona,2);
>             strncpy(nuevo_reg.sSucursal,tmp_suc,4);
>             strncpy(nuevo_reg.sClienNuevo,tmp_nuevo,9);
>             strncpy(nuevo_reg.sNumClien,tmp_viejo,40);
>             Error(271,1);
>             strcpy(nuevo_reg.sError,ea.sError);
>             EscribeRegistros();
>
>             EXEC SQL DELETE mic_cliente
>             WHERE CURRENT OF CursorCliente;
>
>            if ( ChecaErrorOracle(0,1,&rowcount) != GFI_ERRC_OK)
>             {
>              printf("%s  MIC_CLIENTE\n",Error282);
>              desconecta_db();
>              exit(1);
>             }
>
>             nRech++;
>
>          }
>          nReg++;
>       }
>    }
>
>    Estadistica3(sFich,sProg,nReg,nRech);
>    EXEC SQL CLOSE CursorCliente;
>
>    if ( ChecaErrorOracle(0,1,&rowcount) != GFI_ERRC_OK)
>       {
>          printf("%s  MIC_CLIENTE\n",Error267);
>          desconecta_db();
>          exit(1);
>       }
>
>    EXEC SQL COMMIT;
> }
>
> All indexes of the table Mic_Cliente was in the VALID status. I'm think
> that is probability a bug of Oracle Seerver 8.0.4, by contrast this
> sentence is successfully in the Oracle Server 7.3.4.
>
> Please, Help me
>
> Ernesto.
>
>
> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.
Received on Mon Sep 20 1999 - 11:36:57 CDT
![]()  | 
![]()  |