Estoy escribiendo un script de actualización de esquema para un producto que depende de una base de datos Oracle. En un área, necesito crear un índice en una tabla, si ese índice aún no existe. ¿Hay alguna manera fácil de verificar la existencia de un índice que conozco en un script de Oracle?Cómo verificar un índice en Oracle
Sería similar a esta en SQL Server: SI NO EXISTE (SELECT * FROM SYSINDEXES WHERE NOMBRE = 'MyIndex') // A continuación, cree mi MyIndex
A menos que los cites, los objetos de la base de datos (incluidos los índices) se almacenan en mayúsculas. Entonces, si usted hace un índice MITIO CREAR ÍNDICE, entonces en USER_INDEXES se almacenará como MYINDEX. Y Oracle (por defecto) no hará coincidencias que no distingan entre mayúsculas y minúsculas. –
, además de esta respuesta: si necesita verificar si un índice existe en otro esquema, consulte ALL_INDEXES en lugar de usar USER_INDEXES. Verificando USER_INDEXES no funciona con un "ALTER SESSION SET CURRENT_SCHEMA = XYZ", aún consultaría los índices para el usuario actualmente conectado. – SaschaM78