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

SQL Oracle Discussion :

Effacer toutes les tables


Sujet :

SQL Oracle

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut Effacer toutes les tables
    salut à tous,

    je viens de récupérer un dump à remonter sous mon schéma et j'aimerais supprimer tout le contenu (tables , triggers, vues, ...) de mon schéma avant d'effectuer mon dump

    Existe t-il une commande style delete toutes les tables de mon schéma


    Merci
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  2. #2
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    non, mais tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    begin
      for f in (
        select object_type t, object_name n 
        from user_objects
        where object_type in 
          ('TABLE','VIEW','FUNCTION','PROCEDURE','TYPE','PACKAGE','SEQUENCE'))
      loop
        execute immediate 'drop '||f.t||' "'||f.n||'"'||
          case f.t when 'TABLE' then ' cascade constraints' end;
      end loop;
    end;
    /
    mais attention c'est très dangereux, si tu fais ça en tant que SYS, c'est grave.... fais un backup avant au cas où tu te plantes de schéma !

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    sinon, tu droppes le shema que tu recrées ensuite

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    ouais ok c'est ce que je fais d'habitude
    mais faudra que je recré les tables spaces

    merci en tout cas pour vos réponses
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  5. #5
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Bonjour à tous,

    laurentSchneider
    mais attention c'est très dangereux, si tu fais ça en tant que SYS, c'est grave.... fais un backup avant au cas où tu te plantes de schéma !
    Que veux-tu dire par un backup ?

    Merci.
    LBO72

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926

  7. #7
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Laurent,

    J'ai voulu utiliser ton script pour supprimer tous les objets de mon schèma, mais je veux, pour ne pas faire de bétise, sortir en spool le résultat et exécuter le script en sortie après un petit contrôl... sauf que je n'arrive pas à faire de spool.

    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
    SET SERVEROUTPUT off;
    set time on;
    set timing on;
    
    Declare
    toto varchar2(500);
    req  varchar2(500);
    begin
    	spool toto.lst;	
      for f in (
        select object_type t, object_name n 
        from dba_objects
    --    where object_type in ('TABLE','VIEW','FUNCTION','PROCEDURE','TYPE','PACKAGE','SEQUENCE')
        where object_type in ('TABLE')
            and owner = '&Nom_du_Schèma' )
      loop
      	req := 'drop '||f.t||' '||f.n||' '||  case f.t when 'TABLE' then ' cascade constraints' end;
    ---    execute immediate req;      
        dbms_output.put_line(req);
      end loop;
      spool off;
    end;
    /
    Merci.
    LBO72

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    le spool doit figurer avant le bloc pl/sql mais c'est une très bonne idée de faire d'abord un spool pour être sûr!

  9. #9
    Membre averti Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Points : 342
    Points
    342
    Par défaut
    Merci Laurent...
    Et pour ceux que ça intéresse, voici le script qui sort d'abord le résultat dans le fichier supprimer_objets.sql :

    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
    25
    SET SERVEROUTPUT ON;
    set time on;
    set timing on;
    spool supprimer_objets.sql ;	
    Declare
    req  varchar2(500);
    	
    begin
    	dbms_output.enable(10000000);
    
      for f in (
        select object_type t, object_name n 
        from dba_objects
       where object_type in ('TABLE','VIEW','FUNCTION','PROCEDURE','TYPE','PACKAGE','SEQUENCE')
            and owner = '&Nom_du_Schèma' )
      loop
      	req := 'drop '||f.t||' '||f.n||' '||  case f.t when 'TABLE' then ' cascade constraints' end;
    ---    execute immediate req;
          
        dbms_output.put_line(req);
      end loop;
     
    end; 
    /
    spool off;
    .

    Merci à Laurent.... au fait, ton livre "Advanced Oracle programing est traduit en français ou pas ?
    LBO72

  10. #10
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    n'est pas du PL/SQL
    le mettre avant le declare (idem spool off)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  11. #11
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par LBO72 Voir le message
    Merci à Laurent.... au fait, ton livre "Advanced Oracle programing est traduit en français ou pas ?
    Non, pas de traduction prévue

  12. #12
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    merci à tous pour vos participations

    Très instructif
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  13. #13
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par lenoil Voir le message
    ouais ok c'est ce que je fais d'habitude
    mais faudra que je recré les tables spaces
    la suppression du schéma n'interfère en rien avec les tablespaces

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effacer toutes les tables de la base
    Par biddal dans le forum Outils
    Réponses: 1
    Dernier message: 21/02/2008, 15h43
  2. Réponses: 16
    Dernier message: 07/08/2006, 13h11
  3. Réponses: 7
    Dernier message: 30/05/2006, 11h00
  4. effacer toutes les tables
    Par semaj_james dans le forum Oracle
    Réponses: 7
    Dernier message: 29/05/2006, 18h05
  5. Pb effacer toutes les tables d'une bd access
    Par madiam2004 dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/05/2004, 15h24

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