web-dev-qa-db-ja.com

すべてのビューOracleのDDLのエクスポート

すべてのスキーマビューのDDLを単一の.sqlファイルにエクスポートするにはどうすればよいですか?
関数があると読みましたDBMS_METADATA.GET_DDLしかし、私の場合にそれを使用する方法がわかりません。

これを1つのビューに対して行う方法を知っています(Oracle Entreprise Manager-> MySchema-> Views-> Selecting my view-> show object DDL-> Save ..)

SQL * Plusを使用しています

3
mounaim

これを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

関心のあるスキーマを含めるか、または「所有者IN」句で不要なスキーマを除外できます。

1
Stringer

all_mviewsビューが役に立ったと思います。 nameおよびtextフィールドを使用すると、不要な情報なしで、必要なすべてのビューのcreateステートメントを簡単に生成できます。私はJavaとJDBCを使用してファイルに書き込みましたが、sqlplusのスプールでそれを行うこともできると思います。

0
Anton Chekmarev

出力をファイルにSPOOLすることができます:

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