我有一个用于SQL&的架构提取工具。然后,Oracle尝试从另一个模式创建一个新数据库。
我目前遇到了SQL问题(很可能存在于Oracle中)当它尝试执行类似
的操作时CREATE VIEW TestView
SELECT * FROM AnotherViewNotCreated
它错误。
我认为在SQL中使用EXEC
命令会起作用,但它也会抱怨该视图不存在。
有没有办法可以创建视图,即使它们引用了其他不存在的视图呢?
更新:我注意到,如果您从SQL生成脚本,它会按顺序输出视图创建顺序,该顺序似乎表明它应该首先知道应该创建哪些应用程序以防止引用问题。不知道它怎么知道?
答案 0 :(得分:1)
我认为你不能。 This thread建议您首先“伪造”该表,这可能对您有用,但您可能需要在真实可用时重新创建从属视图。
答案 1 :(得分:1)
如果视图调用的视图尚不存在,您如何创建视图?您只需按依赖顺序运行脚本。
出于性能原因,我不建议使用调用其他视图的视图。我们几乎失去了价值数百万美元的客户,因为一些应用程序开发人员认为这是一个好主意。它工作正常,直到有大量数据,然后系统慢慢爬行。调用其他视图的视图,特别是当它们超过一个级别时,可能特别难以进行故障排除和维护。我真的会考虑这是不是一个好主意。