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

PL/SQL Oracle Discussion :

Supprimer plusieurs tables


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Points : 106
    Points
    106
    Par défaut Supprimer plusieurs tables
    Bonjour,
    sur une base de donnée, j'ai 50 tables qui commencent par TTD_ je souhaite les supprimer en utilisant un script (je ne veux pas faire la manip manuellement ça prendrait beaucoup de temps...)
    est ce vous avez des pistes pour faire cela?
    Merci
    à consulter avant de poster ... la FAQ de C#

  2. #2
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Lut,

    Moi j'aurais fait un petit script PL qui va supprimer les tables une à une dans le style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    BEGIN 
     
    FOR rec_table IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'TTD_%')
        LOOP
     
            EXECUTE IMMEDIATE 'DROP TABLE '||rec_table.table_name;
     
        END LOOP;
     
    END;

  3. #3
    Membre régulier
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Points : 106
    Points
    106
    Par défaut
    Merci dernière chose je veux afficher les noms des tables après suppression j'ai rajouter ça... partie en gras:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SET SERVEROUTPUT ON;
    BEGIN 
     FOR rec_table IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'TTD_%')
        LOOP
     
       EXECUTE IMMEDIATE 'DROP TABLE '||rec_table.table_name;
      DBMS_OUTPUT.PUT_LINE(rec_table.table_name);
        END LOOP;
     
    END;
    mais ça n'affiche rien dans l'onglet script output
    à consulter avant de poster ... la FAQ de C#

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 073
    Points
    8 073
    Par défaut
    Citation Envoyé par Bibeleuh Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR rec_table IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'TTD_%')...
    Attention au symbole _ dans le LIKE, qui remplace n'importe quel caractère. Donc s'il y a une table qui s'appelle TTDA par exemple, elle sera supprimée aussi !

    Il vaut mieux faire quelque chose comme ça, pour neutraliser le _ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR rec_table IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'TTD\_%' escape '\' )
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  5. #5
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Effectivement j'ai pas fait gaffe, en plus je m'étais déjà fait piéger par un "_" dans un LIKE ...
    Heureusement que tu es là pour me relire

    Citation Envoyé par Pomalaix Voir le message
    Attention au symbole _ dans le LIKE, qui remplace n'importe quel caractère. Donc s'il y a une table qui s'appelle TTDA par exemple, elle sera supprimée aussi !

    Il vaut mieux faire quelque chose comme ça, pour neutraliser le _ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR rec_table IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'TTD\_%' escape '\' )

  6. #6
    Membre régulier
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par unix27 Voir le message
    Merci dernière chose je veux afficher les noms des tables après suppression j'ai rajouter ça... partie en gras:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SET SERVEROUTPUT ON;
    BEGIN 
     FOR rec_table IN (SELECT table_name FROM user_tables WHERE table_name LIKE 'TTD_%')
        LOOP
     
       EXECUTE IMMEDIATE 'DROP TABLE '||rec_table.table_name;
      DBMS_OUTPUT.PUT_LINE(rec_table.table_name);
        END LOOP;
     
    END;
    mais ça n'affiche rien dans l'onglet script output
    ok et pour l'affichage ? comment on peux afficher les valeurs supprimées plz?
    à consulter avant de poster ... la FAQ de C#

  7. #7
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Citation Envoyé par unix27 Voir le message
    ok et pour l'affichage ? comment on peux afficher les valeurs supprimées plz?
    Oui de cette manière, si rien est affiché c'est peut être que le SELECT n'a rien ramené (car les tables sont déjà supprimées ?)

    T'as testé le SELECT ?

  8. #8
    Membre régulier
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par Bibeleuh Voir le message
    Oui de cette manière, si rien est affiché c'est peut être que le SELECT n'a rien ramené (car les tables sont déjà supprimées ?)

    T'as testé le SELECT ?
    Oui c'est ça merci pour votre aide
    à consulter avant de poster ... la FAQ de C#

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

Discussions similaires

  1. Supprimer plusieurs tables
    Par pekre dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 19/03/2015, 18h20
  2. [MySQL] Supprimer plusieurs tables
    Par francoisch dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 31/07/2012, 13h27
  3. Supprimer plusieurs tables avec le même préfixe
    Par laurentSc dans le forum Administration
    Réponses: 5
    Dernier message: 26/11/2008, 22h30
  4. Comment supprimer plusieurs table d'une base ?
    Par b_lob dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/07/2007, 19h51
  5. Réponses: 6
    Dernier message: 19/09/2006, 19h55

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