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

Administration Oracle Discussion :

[Oracle 10g] Vidage des tables


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut [Oracle 10g] Vidage des tables
    Salut,

    Je travaille sur Oracle 10g et je souhaitais connaitre la meilleure maniere de vider les tables d'un seul user sans effacer rien de la structure.

    La colonne TRUNCATE ne vide qu'une seule table, n'est ce pas ?

    Merci d'avance

    Mario

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    boucle FOR sur all_tables en filtrant sur le schema, et EXECUTE IMMEDIATE pour désactiver les contraintes et faire le truncate

  3. #3
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut
    ca pourrait etre un truc du genre ?
    Ca m'efface bien les donnees des tables du user MAP sans effacer rien de la structure ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BEGIN
    FOR i IN (SELECT * FROM all_tables WHERE owner = 'MAP')
    LOOP
    EXECUTE IMMEDIATE('TRUNCATE TABLE '||i.table_owner||'.'||i.table_name);
    END LOOP;
    END;

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    oui, mais il faut désactiver les contraintes d'abord FAQ

  5. #5
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 307
    Par défaut
    Citation Envoyé par orafrance Voir le message
    oui, mais il faut désactiver les contraintes d'abord FAQ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    BEGIN
    FOR i IN (SELECT * FROM all_tables WHERE owner = 'MAP')
    LOOP
     
    EXECUTE IMMEDIATE('DISABLE NOVALIDATE TABLE '||i.table_owner||'.'||i.table_name);
    EXECUTE IMMEDIATE('TRUNCATE TABLE '||i.table_owner||'.'||i.table_name);
    EXECUTE IMMEDIATE('ENABLE NOVALIDATE TABLE '||i.table_owner||'.'||i.table_name);
     
    END LOOP;
    END;

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/07/2007, 09h43
  2. Réponses: 11
    Dernier message: 15/06/2007, 15h00
  3. Installation oracle 10g: gestion des acces disques
    Par dobinator dans le forum Oracle
    Réponses: 7
    Dernier message: 10/05/2007, 20h08
  4. table.delete vidage des tables
    Par lallem dans le forum Delphi
    Réponses: 2
    Dernier message: 22/06/2006, 11h11
  5. Réponses: 19
    Dernier message: 17/05/2006, 19h05

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