Удаление любого объекта приводит к тому, что все объекты, ссылающиеся на него, помечаются как недействительные.Объекты, которые ссылаются на этот недействительный объект, также могут быть помечены как недействительные и т. Д.Итак, похоже, что ваш пакет ссылается на эту таблицу или зависит от того, что делает.
Я должен признать, что понимаю причину, по которой Oracle выдает ошибку ORA-04061 и не выполняет повторную проверку пакетов в первую очередьраз вы называете недействительным пакет.Однако я не вижу в этом проблемы.Вы не должны создавать или удалять таблицы во время работы приложения.Зачем вам это нужно?
Если вы ищете более быстрый способ очистки таблицы, чем DELETE FROM my_table
, используйте TRUNCATE TABLE my_table
.Обратите внимание, что TRUNCATE
- это DDL, как CREATE
, ALTER
и DROP
, поэтому вам нужно будет обернуть вызов в него в EXECUTE IMMEDIATE
.