Error «SQL0668N Operating not allowed for reason code ‘7’» cuando ejecutamos una query en una tabla Db2 on Cloud

Errores de aquellos que más de añguna vez veremos en nuestro camino, este error sucede cuando la tabla queda «chascona» como decía un DBA amigo mío, al referirse a la ejecución de comandos de estructura de las tablas que no terminaban correctamente y dejan la tabla en estado pendiente de reorganización.

Ok, eso de «quedó chascona la tabla» no es muy profesional que digamos, así es que dejemos el motivo del error de la siguiente forma:

La tabla queda en ese estado como resultado de una sentencia alter o similar que contenga una operación que recomiende la ejecución de reorg, en ese caso la tabla pasará a un estado pendiente de reorg. Hasta que el estado se borre mediante la ejecución de la operación de reorg, el acceso a la tabla estará bloqueado.

Versión profesional de este post

Lo primero es que el mismo DB2 nos indica que estamos frente a esa situación con el error en referencia. Sin embargo, el procedimiento para solucionar este problema comienza por la ejecución de la siguiente consulta en la DB2, con ella ratificaremos que la tabla requiere ser reorganizada.

SELECT REORG_PENDING FROM SYSIBMADM.ADMINTABINFO where TABSCHEMA='nombre-schema' and tabname='nombre-tabla'

Si el resultado es una Y, debemos ejecutar el siguiente comando para reorganizar la tabla

call sysproc.admin_cmd('reorg table nombre-schema.nombre-tabla')

Finalmente, sugiero hacer nuevamente la consulta para verificar que la reorganización de la tabla fue exitosa. Una vez verificado el estado de la tabla, podemos seguir desarrollando o ejecutando nuestras consultas.