У меня есть база данных для приложения и несколько сред (разработка, тестирование и производство).Я хотел бы использовать опцию Копирование базы данных из 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;
Тем не менее этот сценарий очищает схему, удаляя все объекты.Я хотел бы сохранить структуру и объекты, но просто очистить содержимое.
Не могли бы вы помочь мне, как сделать для очистки другого объекта, не удаляя их и импортируя снова?
Спасибозаранее за вашу помощь.
Себастьян