12

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

我成功地获得了用于表格的 DDL -

select dbms_metadata.get_ddl('TABLE','Table_name','Schema_Name') 
  from dual;

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

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

4

2 回答 2

31

尝试以下查询以查看:

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>);
于 2014-05-07T12:41:11.130 回答
1

对于物化视图,请使用:

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

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

于 2019-04-06T14:10:21.907 回答