web-dev-qa-db-fra.com

Supprimer toutes les tables SQL Developer

J'ai des tables dont les noms commencent par "TBL_ *", mais je ne peux pas drop tous par une seule commande.

comment puis-je supprimer ces tables?

15
Emad Aghayi

Vous pouvez écrire un script, en particulier une boucle, dans lequel vous sélectionnez Table_name dans user_tables et itérez cette boucle, et utilisez la commande "execute immediate" pour les supprimer.

Mais je suggère ceci - dans l'outil sql faire

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

Ensuite, vous copiez la sortie de cette requête et la collez dans votre éditeur SQL, puis vous l'exécutez. N'oubliez pas que si sql + est votre éditeur, si vous les collez tous, ils commenceront à s'exécuter. Vous souhaitez peut-être utiliser le bloc-notes pour le consulter et le modifier en premier.

Mais vous ne pouvez pas simplement supprimer plus d'une table en une seule commande. Vérifiez ce lien pour d'autres options associées à la table de dépôt http://docs.Oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm

20
T.S.
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;
13
Frank