J'ai généré un EXPDAT.DMP
Fichier d'une base de données Oracle avec la commande:
exp userid=usr/pass@db owner=own rows=n compress=n
J'ai ensuite exécuté la commande suivante pour générer un fichier contenant la "Table de création de la table ...":
imp userid=usr/pass@db full=y indexfile=output.sql
C'est génial pour les déclarations de table Create, mais je souhaite également la procédure Créer la procédure/Créer une fonction de vue de la vue/Créer une vue de code source. Je peux les voir là-bas dans le fichier .DMP, mais je n'ai pas trouvé de façon de les extraire.
Est-il possible d'extraire ces informations du fichier expdat.dmp? Ou devrais-je utiliser une autre méthode?
L'objectif est d'avoir la source exportable pour les fichiers pouvant être contrôlés à la source.
Si vous avez accès à la base de données d'origine, j'irais avec dbms_metadata.get_ddl.
Vous pouvez le scripter avec utl_file de sorte qu'il passe à travers chaque objet (à partir d'user_Objects), utilise le nom et le type pour extraire l'objet, écrivez-le ensuite dans un fichier contenant la convention de dénomination appropriée.
Il sera beaucoup plus propre que d'essayer de diviser un seul fichier.
Utilisez le [~ # ~] montre [~ # ~ ~] Paramètre pour voir le DDL:
imp userid=usr/pass@db full=y show=y log=imp.log
Si vous pouvez utiliser l'utilitaire de DataPump (ExpdP, IMPDP), au lieu d'exportation traditionnelle, la commande SQLFILE peut être utilisée.
- Prendre le DEPDP
expdp dumpfile=full.dmp logfile=full.log directory=EXP_DIR schemas=SCOTT
- En dessous de l'import sur IMPDP, il vient de générer tout le code d'objet dans le fichier Fullcode.SQL
impdp dumpfile=full.dmp logfile=full.log directory=EXP_DIR schemas=SCOTT content=metadata_only sqlfile=fullcode.sql