web-dev-qa-db-fra.com

Exportation de DDL de toutes vues Oracle

Comment puis-je continuer à exporter ddl de toutes mes vues de schéma dans un fichier unique .sql?
[.____] J'ai lu il y a une fonction DBMS_METADATA.GET_DDL Mais je ne peux pas comprendre comment l'utiliser pour mon cas.

Je sais comment faire cela pour une vue (Oracle Entreprise Manager-> MySchema-> Vues-> Sélection de mon point de vue-> Afficher l'objet DDL-> Enregistrer ..)

J'utilise SQL * Plus

3
mounaim

Essayez ceci pour dbms_metadata.get_dll:

set long 200000 pages 0 lines 150
spool vw.sql
select 
   dbms_metadata.GET_DDL('VIEW',u.view_name,DECODE(u.owner,'SYS','',owner)) 
from 
   all_views u
where 
   owner IN ('HR','SCOTT') 
order by owner,view_name ;
spool off

Vous pouvez également inclure les schémas qui vous intéressent ou excluent les schémas que vous ne voulez pas dans la clause "propriétaire de".

1
Stringer

J'ai trouvé all_mviews Voir utile. Avec name et text champs, je pourrais facilement générer une déclaration de création pour toutes les vues nécessaires sans informations inutiles. J'ai utilisé Java et JDBC pour écrire dans le fichier, mais je pense que vous pouvez également le faire avec une bobine à SQLPlus.

0
Anton Chekmarev

Vous pouvez SPOOL la sortie dans un fichier:

SPOOL 'C:\Temp\all_views.sql';
SELECT dbms_metadata.get_ddl('VIEW', view_name) FROM user_views;
SPOOL OFF;
0
das Keks