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 toutes les données d'une base


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Supprimer toutes les données d'une base
    --------------------------------------------------------------------------------

    Est ce que ca peut se faire de supprimer toutes les données de toutes les tables, ou alors est ce qu il vaut mieux faire un export de la structure, dropper la table et refaire l import derriere ?

    En fait le but est juste de repartir sur une base propre et je pense devoir vider toutes les tables, mais y a un ETL branché dessus et j avoue que pour repartir à zéro je me pose 2-3 questions..

    Merci de votre aide

  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
    drop database?

  3. #3
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Tu peux toujours faire quelque chose comme cela (à améliorer) :
    - créer le script suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    set pages 0
    set feed off
    set lines 80
    set head off
    spool efface_table.sql
    select 'truncate table ' || table_name || ';'
    from all_tables
    where owner in ('user1', ..., 'userN');
    spool off
    - le lancer sous SQL*Plus
    - lancer efface_table.sql sous SQL*Plus
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  4. #4
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par laurentschneider
    drop database?
    Elle existe cette instruction ?

    @+,
    NicK

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par Nick_Holmes
    Elle existe cette instruction ?

    @+,
    NicK
    à partir de la 10 G uniquement

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Je pensais que le drop database fonctionnait aussi pour la 9i, mais si apres je dois refaire toutes mes connexions ça le fait moyen, donc je pense plus peut etre vers le pti script fourni, mais je sais pas trop si je vais réussir à le faire tourner...

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    En fait je pense que le truncate table est exactement la fonction que je recherchais, par contre dans le script, a quoi ca sert d'utiliser tous les set, les spool et tout ca... ??? (curiosité parce que je connais pas grand chose)

    J'ai testé sans tout ca et en fait ca marche pas mal.

    Par contre question: normalement quand je me connecte sous oracle, il s en fout un peu que j'utilise des majuscules pour le nom d'utilisateur, par contre dans le cas du owner in (nom d'utilisateur) là il me demande des majuscules, ou en tout cas la même casse que le vrai nom d'utilisateur, savez vous pourquoi ?

  8. #8
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par yopyopyop
    En fait je pense que le truncate table est exactement la fonction que je recherchais, par contre dans le script, a quoi ca sert d'utiliser tous les set, les spool et tout ca... ??? (curiosité parce que je connais pas grand chose)
    En fait le script sert à recenser toutes les tables des users dont tu souhaites effacer les données et à faire automatiquement les truncate, car si tu as plus d'une centaine de tables, c'est un peu long (et fastidieux) de taper tous les truncate à la main, sans compter que tu risques d'en oublier
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Effectivement, c est pas plus mal !!!

  10. #10
    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 074
    Points
    8 074
    Par défaut
    Citation Envoyé par yopyopyop
    Par contre question: normalement quand je me connecte sous oracle, il s en fout un peu que j'utilise des majuscules pour le nom d'utilisateur, par contre dans le cas du owner in (nom d'utilisateur) là il me demande des majuscules, ou en tout cas la même casse que le vrai nom d'utilisateur, savez vous pourquoi ?
    C'est bête à dire, mais ça a tout simplement été conçu comme ça !
    On peut considérer ça comme arbitraire, il faut juste le savoir.

    Par défaut, quand vous recherchez une valeur textuelle, il faut la spécifier exactement telle qu'elle a été entrée initialement (prise en compte de la casse).

    Avec SQL Server par exemple, c'est plutôt l'inverse : par défaut, la casse n'est pas prise en compte lors des recherches textuelles, mais c'est paramétrable.
    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

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Lorsque je fais mon truncate sur certaines tables il me mets une erreur ora-02266 à cause d'un problème de clé étrangère.
    J'ai regardé un peu cette erreur et d'après il faut modifier les contraintes de la table pour les remettre ensuite. Par contre si je fais un simple delete, ca passe tout seul...

    Quelle est la différence entre un delete et un truncate dans mon cas ou je cherche juste à repartir avec une base vide ?

  12. #12
    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
    ouais, un "drop user" est éventuellement moins contraignant en terme d'intégrité référentiel... tu peux toujours faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SQL> alter table dept disable primary key;
     
    Table altered.
    sur toutes tes tables avant de les tronquer. Mais utiliser imp/exp comme ETL, ça a ses limites...

  13. #13
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par Jaouad
    à partir de la 10 G uniquement
    Haaa bas voilà !
    C'est ballot car je n'ai pas de 10G sous la mimine.
    J'en ai rêver (du drop database), Oracle l'a fait !

    @+,
    NicK

  14. #14
    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
    il y a aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    RMAN> drop database including backups noprompt;
    et après tu remarques que tu n'es pas sur la bonne machine ça fait

Discussions similaires

  1. RAZ de toutes les données d'une base.
    Par Dekdek3578 dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2012, 16h00
  2. Supprimer toutes les tables d'une base
    Par pierre24 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/11/2008, 17h18
  3. Suppression de toutes les tables dans une base de données
    Par GDMINFO dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2007, 08h24
  4. Réponses: 2
    Dernier message: 11/10/2005, 09h15

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