Automatiser les extractions.
Bonjour
je suis confronté à un problème récurrent qui est lourd à faire à la main. et que je ne sais automatiser.
J'ai dans une Appli un grands nombre de tables et deux bases
une pour la prod une pour les tests
lorsqu'une erreur arrive en prod j'ai besoin d'extraire des enregistrement de ma base de prod pour les passer sur la base de test a fin de reproduire l'erreur.
à chaque fois j'ai besoin d'extraire un ou deux éléments qui sont répartis dans diverses tables organiser ainsi
une table maitre et x table fille avec une clef externe.
Ma table maitre s'appelle Master sa clef primaire mst_id et toute les table fille pour un élément donner vont s'appeler
MyType_xxxxxx ou MyType est le type de l'élément à extraire. biensur aucune de ses table n'a la même structure.
pour le moment j'utilise à la mano sqldeveloppeur et je fait un export table par table en donnant le mst_id à chaque export
je me demandais s'il était possible de faire une procédure
qui prends en paramètre un mst_id une chaine MyType
qui exporte toutes les tables MyType_xxxxxx et Master avec l'id mst_id
pour obtenir la liste des table c'est facile
Code:
SELECT table_name FROM user_table WHERE table_name LIKE :mytype || '%';
mais je ne sais pas comment faire l'export
Je n'ai pas accès au file systeme du serveur
je n'ai qu'un client SQL distant
si quelqu'un a une idée pour que je puisse commencer
A+JYT
Procéder par export / import
Bonjour,
Et il faut obligatoirement passer par un script sql ?
Car il doit être possible de procéder comme ça :
1 Lister les tables et générer des parfile d'export expdp en utilisant la clause QUERY pour limiter les lignes au :MyMstId qui va bien
2 Lancer successivement les exports expdp parfile=expdp_[NomTable].par
3 Importer les fichiers générer par expdp dans la base cible
Ca évite de se prendre la tête avec les noms de colonnes qu'on ne connaît pas.
Ca impose d'avoir accès à l'OS de la base cible pour lancer le script sql puis lancer les expdp et les impdp.
Non ?
Pozzo