Очистка схемы SQL перед использованием инструмента копирования базы данных SQL Developer - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть база данных для приложения и несколько сред (разработка, тестирование и производство).Я хотел бы использовать опцию Копирование базы данных из SQL Developer , чтобы извлекать данные из производства и копировать их в процессе разработки.Таким образом, данные в обеих средах будут одинаковыми.

С предыдущей версией программы все работало отлично.Тем не менее, с помощью новой версии (SQL Developer 18.2), введенной нашей компанией, я получаю несколько ошибок с различными объектами, такими как последовательности, существующая таблица, первичный ключ, ...) во время копирования.

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

Я нашел и обновил этот сценарий:

BEGIN
   FOR cur_rec IN (SELECT object_name, object_type
                     FROM user_objects
                    WHERE object_type IN
                             ('TABLE',
                              'VIEW',
                              'PACKAGE',
                              'PROCEDURE',
                              'FUNCTION',
                              'SEQUENCE',
                              'SYNONYM'
                             ))
   LOOP
      BEGIN
         IF cur_rec.object_type = 'TABLE'
         THEN
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '" CASCADE CONSTRAINTS';
         ELSE
            EXECUTE IMMEDIATE    'DROP '
                              || cur_rec.object_type
                              || ' "'
                              || cur_rec.object_name
                              || '"';
         END IF;
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line (   'FAILED: DROP '
                                  || cur_rec.object_type
                                  || ' "'
                                  || cur_rec.object_name
                                  || '"'
                                 );
      END;
   END LOOP;
END;

Тем не менее этот сценарий очищает схему, удаляя все объекты.Я хотел бы сохранить структуру и объекты, но просто очистить содержимое.

Не могли бы вы помочь мне, как сделать для очистки другого объекта, не удаляя их и импортируя снова?

Спасибозаранее за вашу помощь.

Себастьян

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