【发布时间】:2014-05-07 10:52:12
【问题描述】:
对于数据库重新架构,我需要获取每个表的 DDL 并在数据库 (Oracle) 中查看。我不想在 SQL Developer 中访问每个表/视图的属性并从中获取 SQL。
我成功获得了用于表的 DDL-
select dbms_metadata.get_ddl('TABLE','Table_name','Schema_Name')
from dual;
但面临 VIEW 和 MVIEW 的问题。任何人都可以为表格以外的元素提供命令/关键字。
另外,我想将结果导出到一个 Excel 文件中,第一列为 TableName,第二列为 DDL。
【问题讨论】:
-
在您的
dbms_metadata.get_ddl()通话中,只需将TABLE替换为VIEW,并将Table_Name替换为View_Name。 -
请注意,视图文本将/可能与最初提交的不同。
-
@NicholasKrasnov 我也试过了。但它给出以下错误 ORA-31603:在模式“oradba”中找不到类型为 VIEW 的对象“prs_talent_assessment_vw” ORA-06512:在“SYS.DBMS_METADATA”,第 5088 行 ORA-06512:在“SYS.DBMS_METADATA”,第 7589 行 ORA -06512:在第 1 行 31603。 00000 - 在模式 \"%s\"" 中找不到类型为 %s 的“对象 \"%s\" *原因:在数据库中找不到指定的对象。 *操作:更正对象规范并再次尝试调用。但是 prs_talent_assessment_vw 存在于 db 中,并且 oradba 可以访问它。
标签: sql oracle ddl dbms-metadata