我EXPDAT.DMP
使用以下命令生成了一个 Oracle 数据库文件:
exp userid=usr/pass@db owner=own rows=n compress=n
然后我运行以下命令来生成一个包含“创建表...”语句的文件:
imp userid=usr/pass@db full=y indexfile=output.sql
这对于 Create Table 语句非常有用,但我还想要 Create Procedure / Create Function / Create View 源代码。我可以在 .DMP 文件中看到它们,但我还没有找到提取它们的方法。
是否可以从 EXPDAT.DMP 文件中提取此信息?还是我需要使用其他方法?
目的是使源可导出到可以受源控制的文件。
如果您可以访问原始数据库,我会选择 DBMS_METADATA.GET_DDL。
您可以使用 UTL_FILE 编写脚本,以便它遍历每个对象(来自 USER_OBJECTS),使用名称和类型来提取对象,然后将其写入具有适当命名约定的文件。
这比尝试拆分单个文件要干净得多。
使用SHOW参数查看 DDL:
如果您可以使用 datapump(expdp,impdp) 实用程序,而不是传统的导出,则可以使用 sqlfile 命令。
-- 以 expdp
-- impdp 下面不会导入,它只会在 fullcode.sql 文件中生成所有目标代码