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 :

Supprimer une liste de tables


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 731
    Par défaut Supprimer une liste de tables
    Bonjour,

    Comment faire pour supprimer une liste de tables dont le nom commence par TATA par exemple appartenant à un user TOTO?

    Merci.

  2. #2
    Membre expérimenté Avatar de Ahmed AANGOUR
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Janvier 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Janvier 2010
    Messages : 139
    Par défaut
    Une solution:
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    C:\HOMEWARE\Ahmed\scripts\sqlplus>sqlplus toto/toto
     
    SQL*Plus: Release 11.2.0.1.0 Production on Wed Jul 20 14:04:47 2011
     
    Copyright (c) 1982, 2010, Oracle.  All rights reserved.
     
     
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
     
     
    SQL> select table_name from user_tables;
     
    TABLE_NAME
    ------------------------------
    T1_LOG
    T1_NEW
    T3
    T4
    SKEW
    TAB_EUGENE
    T2_LOG
     
    7 rows selected.
     
    SQL> begin
      2  for cur_rec in (select table_name from user_tables) loop
      3  execute immediate ('drop table '|| cur_rec.table_name);
      4  end loop;
      5  end;
      6  /
     
    PL/SQL procedure successfully completed.
     
    SQL> select table_name from user_tables;
     
    no rows selected

  3. #3
    Membre expérimenté Avatar de Ahmed AANGOUR
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Janvier 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Janvier 2010
    Messages : 139
    Par défaut
    J'ai mal lu ton énoncé. J'ai pas vu que tu voulais juste les tables commençant par TATA
    Dans le script ci-dessus il suffit d'ajouter dans la requête du curseur la clause WHERE suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE table_name like 'TATA%'

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 731
    Par défaut
    Citation Envoyé par Ahmed AANGOUR Voir le message
    J'ai mal lu ton énoncé. J'ai pas vu que tu voulais juste les tables commençant par TATA
    Dans le script ci-dessus il suffit d'ajouter dans la requête du curseur la clause WHERE suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE table_name like 'TATA%'
    Merci.


  5. #5
    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
    Par défaut
    pour éviter les erreurs avec les noms de tables réservées, utilise "
    pour éviter les problèmes de clés étrangère. utilise cascade constraints

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate ('drop table "'|| cur_rec.table_name||'" cascade constraints');

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 731
    Par défaut
    Merci à vous deux de votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL> begin
      2  for tab in (select table_name from user_tables where table_name like 'TST_1%') loop
      3  execute immediate ('drop table "'||tab.table_name||'"');
      4  end loop;
      5  end;
      6  /
     
    PL/SQL procedure successfully completed.
     
    SQL> select table_name from user_tables where table_name like 'TST_1%' ;
     
    no rows selected
     
    SQL>

    A+

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 18/01/2016, 16h21
  2. [Lisp][IA] Supprimer une liste d'une liste de listes
    Par Superleo2999 dans le forum Lisp
    Réponses: 5
    Dernier message: 22/03/2010, 10h51
  3. Supprimer une liste
    Par johnnywalker dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/02/2007, 10h26
  4. Supprimer une selection de tables
    Par magic charly dans le forum Oracle
    Réponses: 7
    Dernier message: 12/10/2006, 15h17
  5. Supprimer une liste de la mémoire?
    Par mbk-w dans le forum ASP
    Réponses: 2
    Dernier message: 11/04/2006, 13h14

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