Чтобы удалить все пользовательские таблицы в Oracle SQL, вы можете использовать один из следующих методов:
-
Метод 1: использование динамического SQL
Вы можете динамически генерировать и выполнять операторы SQL для удаления всех пользовательских таблиц. Вот пример:BEGIN FOR cur IN (SELECT table_name FROM user_tables) LOOP EXECUTE IMMEDIATE 'DROP TABLE ' || cur.table_name || ' CASCADE CONSTRAINTS'; END LOOP; END; / -
Метод 2: использование словаря данных
Вы можете запросить представления словаря данных, чтобы сгенерировать серию операторов DROP TABLE. Вот пример:SELECT 'DROP TABLE ' || table_name || ' CASCADE CONSTRAINTS;' FROM user_tables; -
Метод 3: экспорт и импорт
Другой вариант — экспортировать пользовательскую схему с помощью утилиты Oracle Data Pump, удалить пользователя, а затем импортировать схему обратно. Этот метод полезен, если вы хотите удалить не только таблицы, но и другие объекты схемы.-- Export user schema expdp username/password DIRECTORY=data_pump_dir DUMPFILE=export.dmp SCHEMAS=username -- Drop user schema DROP USER username CASCADE; -- Import user schema impdp username/password DIRECTORY=data_pump_dir DUMPFILE=export.dmp REMAP_SCHEMA=username:username