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

Import/Export Oracle Discussion :

Extraire données d'un dump [10gR2]


Sujet :

Import/Export Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut Extraire données d'un dump
    Bonjour à tous,

    J'ai un gros dump (32go) issu d'une base Oracle 10gR2 et je souhaite extraire les données d'une seule table de ce dump. Est-ce qu'il existe une solution autre que remonter le dump entier dans une base de test ?

    Merci d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Oui, c'est possible, avec impdp tu devras utiliser le paramètre TABLES (avec un S, même si tu importes une seule table).
    Un exemple ici : https://docs.oracle.com/database/121...6.htm#SUTIL955

    Est-ce que la table à importer existe déjà dans la base d'import? Si oui, est-ce que la strcuture de la table est identique entre la base d'export et d'import? Si oui, tu peux ajouter
    CONTENT=DATA_ONLY pour n'importer que les données et pas, en plus, les métadatas de ta table.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Nikel !

    La table est existante, dans le doute je ne la remonte pas directement dans la prod mais sur une copie pour tester et valider que le dump est valide.

    Avant de lancer l'import est-ce que je dois vider la table ou bien imp va s'en charger ou alors mettre à jour par rapport au dump ?

    Cela marche même si le dump a été créé à l'ancienne avec exp et non expdb ?

  4. #4
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    "Avant de lancer l'import est-ce que je dois vider la table ou bien imp va s'en charger ou alors mettre à jour par rapport au dump ?"
    Il faut préciser le besoin : qu'est-ce que tu veux faire? Est-ce que le contenu du dump doit remplacer les données de la table ou bien ajouter seulement les données non présentes dans la table d'import?
    En résumé, tu veux un remplacement des données ou un ajout?

    Perso, je viderai le contenu de la table pour avoir un import qui me donne une table identique à ce qui existe dans la base d'export.

    "Cela marche même si le dump a été créé à l'ancienne avec exp et non expdb ?"
    Non, exp et imp sont l'ancien utilitaire d'export/import d'Oracle, remplacés en 2004 (Oracle V10) par datapump, à savoir expdp et impdp.
    Donc tu dois impérativement utiliser imp pour l'import, pas impdp.
    Un exemple ici pour importer une seule table : https://docs.oracle.com/database/121....htm#SUTIL1755
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Il faut préciser le besoin : qu'est-ce que tu veux faire? Est-ce que le contenu du dump doit remplacer les données de la table ou bien ajouter seulement les données non présentes dans la table d'import?
    En résumé, tu veux un remplacement des données ou un ajout?
    C'est une table qui ne bouge pas ou alors très très peu et surtout c'est uniquement un seul champ que j'ai besoin de restaurer. Donc on est partie pour restaurer la table du dump dans un shema dédié à un utilisateur, de faire un select [les champs nécessaires] pour exporter ça dans un csv et ensuite d'importer tout ça dans la table de prod (en ayant fait un export de cette table avant ). La table n'est pas énorme, elle fait ~13000 enreg.

    Non, exp et imp sont l'ancien utilitaire d'export/import d'Oracle, remplacés en 2004 (Oracle V10) par datapump, à savoir expdp et impdp.
    C'est ce qu'il me semblait aussi.

    Merci pour toutes tes infos.

  6. #6
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Euh, attends, qu'est-ce que c'est que cette histoire de SELECT et de fichier .csv?
    Si tu veut faire un import avec la commande imp, il faut avoir un fichier issu d'un export avec la commande exp.

    Maintenant, si tu a un fichier .csv dont tu veux importer le contenu dans une table, ce n'est ni imp ni impdp qu'il faut utiliser mais l'outil SQL Loader.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  7. #7
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2008
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2008
    Messages : 231
    Points : 82
    Points
    82
    Par défaut
    Je ne peux pas re-importer toutes les colonnes de la table car d'autres infos ont peut-être été modifiées depuis hier, donc je prends uniquement les colonnes nécessaires.

    L'idée est de :
    - remonter la table du dump dans un shema avec un utilisateur dédié sur un serveur de test;
    - depuis un requêteur ou sqlplus, extraire la colonne que je souhaite re-injecter sur la prod (en prenant aussi les colonnes permettant d'identifier les enreg);
    - enregistrer le tout dans un csv;
    - contrôler que le fichier est ok;
    - importer le csv dans la base de prod via l'outil qui exploite la base Oracle (ERP).

  8. #8
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Ok, n'hésite pas à nous dire si tout s'est bien passé.
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

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

Discussions similaires

  1. extraire donné fichier txt afficher dans xml
    Par jasminrose dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 01/04/2007, 12h14
  2. Extraire données d'une table par date
    Par Hombe dans le forum Langage SQL
    Réponses: 7
    Dernier message: 08/11/2006, 23h03
  3. Extraire données par date du jour
    Par Hombe dans le forum Oracle
    Réponses: 6
    Dernier message: 08/11/2006, 11h14
  4. Extraire données d'un webservice , xml , php ..
    Par Lettue dans le forum Langage
    Réponses: 1
    Dernier message: 14/09/2006, 19h24
  5. Extraire données fichier txt
    Par philippef dans le forum Langage
    Réponses: 1
    Dernier message: 10/10/2005, 17h12

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