我们有一组用于部署数据库代码的大型(2000+)脚本。有谁知道是否有一个工具可用于创建符合正确依赖顺序的单个部署脚本?
我知道这可以使用Redgate的SQL Compare来完成,但是如果你有SQL Server那就很棒。从Schema Compare for Oracle工具的有限信息来看,它似乎没有此功能。
答案 0 :(得分:3)
我会按照以下顺序(大致基于使用EXPDP提取对象的顺序):
答案 1 :(得分:2)
我会创建一个脚本,以正确的顺序启动脚本,具体取决于它们的实现方式。
force
选项,以便在生成订单时创建它们
对“代码”类型或其他视图和类型的问题或依赖性)在重新编译无效对象时,启动rdbms / admin / utlrp重新编译无效对象。
答案 2 :(得分:1)
我不确定我是否已完全理解您的问题,但您可能需要尝试以下操作:
答案 3 :(得分:0)
以下是为不同类型的数据库对象运行安装脚本的顺序的一般准则:
Package specifications
Tables (with constraints and indexes) in proper order
Sequences (because they are most often used by triggers)
Triggers
Synonyms
Views (because they may reference functions, procedures, or synonyms)
Package bodies
Data (optionally disabling all constraints before loading the data and re-enabling them afterwards)
首先列出包规范,因为它们始终有效,其他对象可能引用它们。包体应该是最后创建的对象类型,因为它们可能会引用其他对象类型。由于依赖性问题,我们鼓励您将函数和过程放入包中。