Иногда возникает необходимость удалить все таблицы. Конечно, проще удалить пользователя базы и создать его заново. Это самый надёжный вариант, который точно удалит весь мусор, который может остаться в базе, однако не всегда на это есть пермиссии. Но можно воспользоваться этим скриптом:
Первый:
И второй:
Думаю ясно что они делают. Будьте внимательны:если вы удалите сначала таблицы, то триггеры будут переименованы и скрипт удаления триггеров может не отработать. Так что удаляйте сначала триггеры.
BEGIN
FOR i IN (SELECT table_name FROM user_tables)
LOOP
EXECUTE IMMEDIATE('DROP TABLE ' || user || '.' || i.table_name || ' CASCADE CONSTRAINTS');
END LOOP;
END;
А тут еще 2 полезных скрипта:Первый:
BEGIN
FOR i IN (SELECT trigger_name FROM user_triggers)
LOOP
EXECUTE IMMEDIATE('DROP TRIGGER ' || user || '.' || i.trigger_name);
END LOOP;
END;
И второй:
BEGIN
FOR i IN (SELECT sequence_name FROM user_sequences)
LOOP
EXECUTE IMMEDIATE('DROP SEQUENCE ' || user || '.' || i.sequence_name);
END LOOP;
END;
Думаю ясно что они делают. Будьте внимательны:если вы удалите сначала таблицы, то триггеры будут переименованы и скрипт удаления триггеров может не отработать. Так что удаляйте сначала триггеры.
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.