About ORA-08102 in Oracle Enterprise Edition Release 8.0.4.0.0
Date: Mon, 20 Sep 1999 07:41:32 GMT
Message-ID: <7s4ofa$1cv$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 - 09:41:32 CEST
