Oracle SQL Developer 能够通过Tools -> Database Export...这种方式导出 DDL效果很好,但需要人工干预。
我知道DBMS_METADATA.get_ddl(),但发现导出并不完美。我遇到了导出的DBMS_METADATADDL 无法使用的问题,如果没有首先解决诸如关键字中间中断之类的问题,甚至更糟。但是,如果有人知道一种DMBS_METADATA无需手动修复即可运行的导出 DDL 的方法,那也将是一个很好的解决方案。
基本上,我正在寻找一种自动/脚本化的方式来导出与通过手动方式导出的 DDL相同的DDL 。
我怎样才能做到这一点?
我EXPDAT.DMP使用以下命令生成了一个 Oracle 数据库文件:
exp userid=usr/pass@db owner=own rows=n compress=n
Run Code Online (Sandbox Code Playgroud)
然后我运行以下命令来生成一个包含“创建表...”语句的文件:
imp userid=usr/pass@db full=y indexfile=output.sql
Run Code Online (Sandbox Code Playgroud)
这对于 Create Table 语句非常有用,但我也想要 Create Procedure / Create Function / Create View 源代码。我可以在 .DMP 文件中看到它们,但我还没有找到提取它们的方法。
是否可以从 EXPDAT.DMP 文件中提取此信息?或者我需要使用另一种方法吗?
目的是将源代码导出到可以进行源代码控制的文件中。