oracle - 为 Oracle 存储过程依赖关系图生成 DDL

标签 oracle stored-procedures oracle-sqldeveloper toad

通过 TOAD,我知道我可以使用模式浏览器查看存储过程的依赖关系(使用)图。而且,Oracle 实用程序deptree_fill 可以执行类似的操作。我想要做的是将所有存储过程、函数和表定义 DLL 编写到一个文件中,我可以使用该文件在另一个数据库中重新创建这些对象。是否有用于此目的的工具或现有脚本?我自己的搜索没有找到解决方案。在我的特定情况下,存储过程使用了十几个其他过程、一些函数和二十个表。

编辑 1

也许我原来的问题不清楚。我正在寻找的是一种能够获取我感兴趣的存储过程并将其及其所有依赖关系图编写到一个或多个文件中的东西。

我正在处理的模式中有数百个对象,依赖关系图中有大约 50 个对象。因此,如果可以的话,我宁愿不要在 TOAD 中挖掘大型列表或自己编写 Oracle 脚本。

最佳答案

可以使用dbms_metadata包提取所有源。

获取表的来源:

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

获取存储过程的源代码:

select dbms_metadata.get_ddl('PROCEDURE', 'SOME_PROC')
from dual;

使用它,您可以创建一个 SQL 脚本来提取所有内容,然后将结果假脱机到文件中。

有关dbms_metadata中各种函数的更多详细信息可以在手册中找到:

http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_metada.htm#i1015856

关于oracle - 为 Oracle 存储过程依赖关系图生成 DDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660758/

相关文章:

oracle - oracle中动态调用过程

sql - 生成 SQL 查询计划需要 5 分钟,查询本身的运行时间为几毫秒。这是怎么回事?

mysql - SQL帮助识别缺失数据

oracle - 如何连接oracle sql Developer的本地实例?

sql - 从 sql azure 发送电子邮件

Oracle 包调试不会在断点处停止

oracle - 如何显示 widememo 列?

sql - 超过 50 个连接的查询速度慢吗?

database - oracle systimestamp (sysdate) 到毫秒

c# - 如何使用 Oracle Entity Framework 支持强制使用 pascal 大小写?