使用查询获取VIEW ddl

时间:2014-05-07 10:52:12

标签: sql oracle ddl dbms-metadata

对于数据库重新架构,我需要获取每个表的DDL并在数据库(Oracle)中查看。我不想去每个表/视图的属性,并在SQL Developer中从中获取SQL。

我使用 -

成功获得了桌子的DDL
select dbms_metadata.get_ddl('TABLE','Table_name','Schema_Name') 
  from dual;

但面对VIEW和MVIEW的问题。任何人都可以为表格以外的元素提供命令/关键字。

另外,我想将结果导出到excel文件中,第一列为TableName,第二列为DDL。

2 个答案:

答案 0 :(得分:19)

请尝试以下查询:

select text from ALL_VIEWS where upper(view_name) like upper(<view_name>;

对于mviews:

select query from ALL_MVIEWS where upper(mview_name) like upper(<mview_name>);

答案 1 :(得分:0)

对于物化视图,请使用:

select dbms_metadata.get_ddl('MATERIALIZED_VIEW','MView_name','Schema_Name') 
  from dual;

在此处查看所有受支持的对象类型:DBMS_METADATA: Object Types