Oracle SQL - Может ли оператор DML когда-либо вызывать недопустимость объекта? - PullRequest
2 голосов
/ 23 июня 2011

Я работаю над написанием некоторых пакетных сценариев для своей компании, и я вижу в некоторых исторических пакетных сценариях следующие шаги:

  1. Существует один оператор Delete from table where ....
  2. Средство импорта Oracle используется для импорта отдельной записи
  3. Перекомпилируйте схему

Я не думаю, что вам потребуется перекомпилировать схему после удаления изатем импортировать (вставить).Я ошибся?Возможно ли когда-нибудь, чтобы операторы DDL, такие как delete и insert, приводили к тому, что объект был недействительным?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Я полагаю, вы указываете параметр TABLES при импорте? Если это так, вы находитесь в режиме TABLE, что означает, что процедурные объекты, представления и т. Д. Не импортируются. Команда imp выполняет COMPILE для любых программных модулей PL / SQL, которые могут быть импортированы процессом. Это может привести к недействительности других зависимых объектов, что приведет к повторной компиляции в пакетном скрипте. Конечно, много раз такого рода вещи помещаются в сценарий, основанный на другом сценарии, который использовался в качестве шаблона и может легко оказаться ненужным.

1 голос
/ 23 июня 2011

Не могу придумать причину, по которой это может произойти, если ваш DML не связывается со словарем данных, что звучит как очень плохая идея ...

Как еще одна мысль, может быть, у перекомпиляции есть побочный эффект выполнения необходимого COMMIT?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...