Я пытаюсь создать сценарий для удаления всех объектов в базе данных, поэтому с помощью следующего выбора создайте процедуру для выполнения, которая оставит базу данных полностью чистой (без разрешения на удаление базы данных и ее повторное создание).,Сначала удалите все последовательности, индексы и т. Д., А затем таблицы.
select 'drop '||object_type||' '|| object_name || ';' from user_objects where object_type in ('VIEW','PACKAGE','SEQUENCE', 'PROCEDURE', 'FUNCTION', 'INDEX')
Имея это в виду, я подумал, что что-то вроде этого может работать:
BEGIN
FOR i IN (select 'drop '||object_type||' '|| object_name || ';' from user_objects where object_type in ('VIEW','PACKAGE','SEQUENCE', 'PROCEDURE', 'FUNCTION', 'INDEX'))
LOOP
EXECUTE IMMEDIATE i;
END LOOP;
END;
/
Но я получаю:
Отчет об ошибке - ORA-06550: строка 5, столбец 27: PLS-00382: выражение имеет неправильный тип ORA-06550: строка 5, столбец 9: PL / SQL: оператор игнорируется 06550. 00000 - "строка% s, столбец% s: \ n% s "* Причина: обычно ошибка компиляции PL / SQL.* Действие:
Есть идеи, как это сделать?