Error en index sga_inasistencias

Estimados,

Estamos con inconvenientes en la tabla sga_inasistencias, al parecer algunos índices se corrompieron y eso no nos permite cargar nada, al hacer los inserts en la tabla nos da el siguiente error:

Could not position within a table (Error: Error: dba.sga_inasistencias)

Hice un oncheck -ci y el resultado fue el siguiente:

C:\informix>oncheck -ci guarani:sga_inasistencias

WARNING: index check requires a s-lock on tables whose lock level is page.

Validating indexes for guarani:dba.sga_inasistencias…
Index 605_3006
Index fragment in DBspace guaranidbs
ERROR: Bad node links. 993’s next 9d1 != 701
ERROR: Index 605_3006 for guarani:dba.sga_inasistencias is bad.
Index 605_4373
Index fragment in DBspace guaranidbs
ERROR: Bad node links. 152’s next 15a != 14e
ERROR: Index 605_4373 for guarani:dba.sga_inasistencias is bad.
Index 605_4374
Index fragment in DBspace guaranidbs
ERROR: Bad node links. 106’s next ff != 107
ERROR: Index 605_4374 for guarani:dba.sga_inasistencias is bad.
Index 605_4375
Index fragment in DBspace guaranidbs
ERROR: Bad node links. 10b’s next 95 != 10d
ERROR: Index 605_4375 for guarani:dba.sga_inasistencias is bad.
Please Drop and ReCreate Index 605_3006 for guarani:dba.sga_inasistencias.
Please Drop and ReCreate Index 605_4373 for guarani:dba.sga_inasistencias.
Please Drop and ReCreate Index 605_4374 for guarani:dba.sga_inasistencias.
Please Drop and ReCreate Index 605_4375 for guarani:dba.sga_inasistencias.

Al querer borrar cualquiera de los índices con la sentencia

DROP INDEX database:owner.index;

me da error de sintaxis…

Alguna idea de cómo solucionar esto?

gracias!
Laura

hola Laura

fijate si dropeando las constraints te borra los índices.

select * from sysconstraints
where idxname in (select idxname from sysindexes
where tabid in (select tabid from systables where tabname =‘sga_inasistencias’))

Emilio

Laura:

Corré primero el oncheck con el parámetro indicado para lockear la tabla y poder arreglar los índices (no recuerdo cual es … creo que es -x), a ver si los arregla o por lo menos te permite dropearlos.

Por otra parte, ese error es típico que te lo da cuando alguien tiene tomada la tabla dentro de una transacción abierta sin cerrar. Fijate que no haya nadie en esa situación.

Saludos

Gustavo