Удалить все таблицы SQL developer

У меня есть таблицы, имена которых начинаются с " TBL_*", но я не могу drop все они по одной команде.

Как я могу отбросить эти таблицы?

2 ответов


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

но я бы предложил это - в SQL tool do

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

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

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


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;