Я пишу сценарий обновления схемы для продукта, который зависит от базы данных Oracle. В одной области мне нужно создать индекс в таблице - если этот индекс еще не существует. Есть ли простой способ проверить наличие индекса, который я знаю, имя в сценарии Oracle?Как проверить индекс в Oracle
Это было бы похоже на это в SQL Server: IF NOT EXISTS (SELECT * FROM SYSINDEXES WHERE NAME = 'myIndex') // Затем создать мой myIndex
Если вы не цитируете их, объекты базы данных (включая индексы) сохраняются в верхнем регистре. Поэтому, если вы делаете CREATE INDEX myIndex, то в USER_INDEXES он будет храниться как MYINDEX. И Oracle (по умолчанию) не будет делать регистрозависимые совпадения. –
просто в дополнение к этому ответу: если вам нужно проверить, существует ли индекс в другой схеме, запросите ALL_INDEXES вместо использования USER_INDEXES. Проверка USER_INDEXES не работает с «ALTER SESSION SET CURRENT_SCHEMA = XYZ», вы все равно будете запрашивать индексы для текущего пользователя. – SaschaM78