简化包和视图的创建

时间:2009-10-13 06:35:53

标签: sql oracle

我有几个SQL脚本可以设置应用程序的数据库。几乎没有脚本创建几乎没有视图引用的包,同样也有用于创建包含引用包的视图的脚本。

有没有办法将这两个脚本分开,然后分别只创建包或视图。

或任何替代方案。

3 个答案:

答案 0 :(得分:4)

首先,创建包规范。

其次,创建视图 - 它们引用规范,而不是正文。

第三,创建包体 - 它们引用视图。

答案 1 :(得分:3)

您可以先使用语法

创建所有视图
CREATE OR REPLACE FORCE VIEW

即使引用的对象尚不存在,也会创建一个视图,然后创建所有的包规范,然后创建实体。

现在您可以编译所有无效对象,或者让Oracle负责处理它(请参阅此链接)

Ask Tom - "invalid objects"

答案 2 :(得分:1)

我认为你必须手动计算参考图,然后相应地命令执行脚本。

所以你需要创建一组脚本views1.sql,views2.sql,...和packages1.sql,packages2.sql,... Views1.sql仅包含不引用任何包的视图。 Packages1.sql仅包含未引用任何视图的包。 Views2.sql仅包含引用packages1.sql包的视图。 Packages2.sql仅包含引用views1.sql中的视图的包。

依此类推,直到你完成。