2013-08-03 4 views

ответ

19

Вы можете написать скрипт, в частности цикл, в котором вы выбираете Table_name из user_tables и повторяете этот цикл, и используйте команду «выполнить немедленную команду», чтобы удалить их.

Но я хотел бы предложить это - в SQL инструмент сделать

select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%' 

Затем вы копируете вывод этого запроса и вставить в редактор SQL, и выполнить. Помните, что если sql + - ваш редактор, если вы вставляете их все, они запустится. Возможно, вы хотите использовать блокнот, чтобы сначала просмотреть и отредактировать его.

Но вы не можете просто отбросить несколько таблиц за одну команду. Проверить эту ссылку для других параметров, связанных с таблицей падения http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm

7
BEGIN 

    --Bye Tables! 
    FOR i IN (SELECT ut.table_name 
       FROM USER_TABLES ut) LOOP 
    EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS '; 
    END LOOP; 

END; 
+0

Я описал эту технику в моем оригинальном ответе> 3 года назад. И я указал, что иногда это может быть опасно при работе с данными. Http://stackoverflow.com/a/18030453/1704458 –

+0

Это получает нижний предел, потому что пользователь * специально спросил * только для таблиц, начинающихся с «TBL_» - это удалить все! – theMayer

Смежные вопросы