Я пишу сценарий обновления схемы для продукта, который зависит от базы данных Oracle.В одной области мне нужно создать индекс для таблицы - если этот индекс еще не существует.Если он существует, то мне нужно удалить его (поскольку изменение существующего индекса не позволяет добавить другой столбец) и создать с тем же именем.Я использую следующий сценарий -
DECLARE
i INTEGER;
BEGIN
SELECT COUNT(*) INTO i FROM user_indexes WHERE index_name =
'ELEMENTS_5_NDX';
IF i = 0 THEN
EXECUTE IMMEDIATE ('
CREATE INDEX ELEMENTS_5_NDX
ON elements_l
(scode ASC, pkey ASC, START_DATE ASC, OPP_SEX_IND ASC)
');
ELSE
EXECUTE IMMEDIATE ('DROP INDEX ELEMENTS_5_NDX');
COMMIT;
EXECUTE IMMEDIATE ('
CREATE INDEX ELEMENTS_5_NDX
ON elements_l
(scode ASC, pkey ASC, START_DATE ASC, OPP_SEX_IND ASC)
');
END IF;
END;
/
Я получаю следующую ошибку - Отчет об ошибке: ORA-00955: имя уже используется существующим объектом ORA-06512: в строке 9 00955. 00000 - "имя уже используется существующим объектом "
Пожалуйста, предложите несколько советов.