IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Supprimer uniquement le contenu d'un schema


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Par défaut Supprimer uniquement le contenu d'un schema
    Bonjour,

    je cherche à supprimer uniquement le contenu d'un schéma, est-ce possible ?

    Car actuellement, pour recréer un schéma vierge qui comporte le même nom, voici ma procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP USER Mon_Schema CASCADE;
    Et ensuite je recréer le schéma, avec les bons rôles etc...

    Je pense que ça serait plus simple de pouvoir supprimer uniquement le contenu de celui ci.

    Est-ce que quelqu'un sait comment faire ?

    Merci.

  2. #2
    Membre expérimenté
    Avatar de ora_home
    Homme Profil pro
    Consultant Oracle
    Inscrit en
    Février 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant Oracle
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 103
    Par défaut
    Il arrive parfois d’avoir besoin de supprimer tous les objets d’un schéma, mais, par facilité ou pour différentes raisons, sans supprimer l’utilisateur. Par défaut la base de données Oracle ne fournit pas d’ordre SQL simple pour effectuer une telle tache. Je vous propose ainsi le petit script suivant pour exécuter cette opération.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    DECLARE
        cursor c_get_objects is
            select owner, object_type,'"'||object_name||'"'||decode(object_type,'TABLE' ,' cascade constraints purge',null) obj_name
            from dba_objects
            where object_type in ('TABLE','VIEW','PACKAGE','SEQUENCE','PROCEDURE','FUNCTION', 'SYNONYM', 'MATERIALIZED VIEW')
            and owner in ('MYUSER');
        cursor c_get_objects_type is
            select owner, object_type, '"'||object_name||'"' obj_name
            from dba_objects
            where object_type in ('TYPE')
            and owner in ('MYUSER') ;
    BEGIN
        for object_rec in c_get_objects
        loop
            execute immediate ('drop ' || object_rec.object_type || ' ' || object_rec.owner || '.' ||object_rec.obj_name);
        end loop;
        for object_rec in c_get_objects_type
        loop
            begin
                execute immediate ('drop '||object_rec.object_type || ' ' || object_rec.owner ||'.' || object_rec.obj_name);
            end;
        end loop;
    END;
    /

  3. #3
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 52
    Par défaut
    @ora_home : pour sécuriser les drop et ne pas les faire en SYS : car danger, il est possible de se connecter avec le <schema> en question et lancer la requète sur la user_objects.

    Franck.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Continuez d’utiliser drop schéma. C’est une solution qui dépasse de loin les scripts SQL mal écrites que vous trouver sur divers forum sur l’internet.

  5. #5
    Membre expérimenté
    Avatar de ora_home
    Homme Profil pro
    Consultant Oracle
    Inscrit en
    Février 2009
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Consultant Oracle
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 103
    Par défaut
    Citation Envoyé par funoracle Voir le message
    @ora_home : pour sécuriser les drop et ne pas les faire en SYS : car danger, il est possible de se connecter avec le <schema> en question et lancer la requète sur la user_objects.

    Franck.
    Normalement pour n'import quelle DROP, il doit prendre ses précautions.

    Merci le message

Discussions similaires

  1. Supprimer tout le contenu d'un dossier
    Par MotorX dans le forum Débuter
    Réponses: 4
    Dernier message: 24/08/2011, 00h02
  2. Réponses: 15
    Dernier message: 02/12/2010, 16h03
  3. [C#] Recharger uniquement le contenu d'une Iframe
    Par domux dans le forum ASP.NET
    Réponses: 8
    Dernier message: 16/02/2008, 15h06
  4. Charger uniquement le contenu
    Par Kneckers dans le forum ASP.NET
    Réponses: 6
    Dernier message: 29/05/2007, 18h00
  5. Réponses: 2
    Dernier message: 12/01/2004, 13h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo