Oracle : Supprimer toutes les tables d’un schéma

By , 14/12/2012

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.

Leave a Reply


− 4 = one

OfficeFolders theme by Themocracy