Oracle : Supprimer toutes les tables d’un schéma
Voici un petit script PLSQL pour supprimer toutes les tables d’un schéma d’une base de données Oracle. Il s’agit de créer un curseur implicite sur la liste des tables de l’utilisateur sans prendre en compte les tables de la corbeille. Puis de boucler sur cette liste afin d’exécuter la commande de suppression de chaque table sans oublier toutes ses contraintes :
BEGIN FOR c IN (SELECT object_name, object_type FROM user_objects WHERE object_type IN ('TABLE') AND object_name NOT LIKE '%$%') LOOP EXECUTE IMMEDIATE 'DROP ' || c.object_type || ' "' || c.object_name || '" CASCADE CONSTRAINTS'; END LOOP; END;
Ce script peut être adapté pour supprimer d’autres types d’objet comme des vues. Pour cela, modifier TABLE en VIEW.