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
![]() |
![]() |