J'écris un script de mise à niveau de schéma pour un produit qui dépend d'une base de données Oracle. Dans un domaine, j'ai besoin de créer un index sur une table - si cet index n'existe pas déjà. Existe-t-il un moyen facile de vérifier l'existence d'un index dont je connais le nom dans un script Oracle?Comment rechercher un index dans Oracle
Il serait semblable à cela dans SQL Server: SINON EXISTE (SELECT * FROM SYSINDEXES OU NOM = 'MYIndex') // Puis créer mon MYIndex
Sauf indication contraire, les objets de base de données (index compris) sont stockés dans upperdcase. Donc, si vous créez un index CREATE INDEX myIndex, dans USER_INDEXES, il sera stocké sous MYINDEX. Et Oracle (par défaut) ne fera pas de correspondance insensible à la casse. –
juste en plus de cette réponse: si vous avez besoin de vérifier si un index existe dans un autre schéma, interrogez ALL_INDEXES au lieu d'utiliser USER_INDEXES. La vérification de USER_INDEXES ne fonctionne pas avec un "ALTER SESSION SET CURRENT_SCHEMA = XYZ", vous devrez toujours interroger les index pour l'utilisateur actuellement connecté. – SaschaM78