Oracle/PLSQL: mensaje de error ORA-01408

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: mensaje de error ORA-01408

Aprenda por qué y cómo resolver los mensajes de error ORA-01408 en Oracle.

describir

Cuando encuentra un error ORA-01408, aparece el siguiente mensaje de error:

  • ORA-01408: dicha lista de columnas ya está indexada

razón

Ha intentado crear un índice en un conjunto de columnas de una tabla, pero ya tiene un índice en ese conjunto de columnas.

resolver

Las opciones para resolver este error de Oracle incluyen:

Opción 1

Corrija su declaración CREATE INDEX para hacer referencia a un conjunto de columnas que no han sido indexadas.

Por ejemplo, si tiene una tabla llamada proveedores, definida de la siguiente manera:

CREATE TABLE suppliers
( supplier_id number not null,
  supplier_name varchar2(50) not null
);

Luego, creó un índice llamado idx_proveedor con:

CREATE INDEX supplier_idx
  ON suppliers (supplier_id);

Luego intenta crear un segundo índice llamado idx2 del proveedor que use las mismas columnas que el primer índice.

CREATE INDEX supplier_idx2
  ON suppliers (supplier_id);

Recibirá el siguiente mensaje de error:

La creación de un índice en el mismo conjunto de columnas varias veces no mejorará el rendimiento. En su lugar, es posible que desee crear un índice que use un conjunto diferente de columnas (o un orden diferente de las columnas).

Por ejemplo, los siguientes índices se crearán con éxito:

CREATE INDEX supplier_idx3
  ON suppliers (supplier_id, supplier_name);