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.
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.
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
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 ?
"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
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.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 ce qu'il me semblait aussi.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.
Merci pour toutes tes infos.
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
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).
Ok, n'hésite pas à nous dire si tout s'est bien passé.
DBA Oracle
Rédacteur du blog : dbaoraclesql.canalblog.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager