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);