我想生成创建脚本,该脚本将创建非常多的所有数据库视图。 我知道如何在Oracle SQL Developer中使用菜单:Tools>数据库导出。但是我遇到了导出创建视图脚本的问题。以下是问题。
问题#1创建视图的顺序不正确。在下面的示例中,MY_VIEW_B首先在脚本中创建,然后才依赖于MY_VIEW_A。如何生成依赖顺序正确的脚本?
CREATE OR REPLACE MY_VIEW_B ("COLUMN1", "COLUMN2") AS
SELECT "COLUMN1", "COLUMN2"
FROM MY_VIEW_A;
CREATE OR REPLACE MY_VIEW_A ("COLUMN1", "COLUMN2") AS
SELECT "COLUMN1", "COLUMN2"
FROM TABLE_A;
问题#2分号“;”被转移到视图代码的最后一行,但问题是它是注释行。因此,当我执行脚本时会出现错误,因为没有关闭“;”分号,因为它被移动到注释所在的行。如何生成脚本以便我的视图代码的最后一行是“;”分号不会自动转移到视图代码的最后一行的第二行,这是一个注释吗?
CREATE OR REPLACE MY_VIEW_C ("COLUMN1", "COLUMN2") AS
SELECT "COLUMN1", "COLUMN2"
FROM TABLE_B
--THIS IS A COMMENT;
CREATE OR REPLACE MY_VIEW_C ("COLUMN1", "COLUMN2") AS
SELECT "COLUMN1", "COLUMN2"
FROM TABLE_C;
谢谢。
答案 0 :(得分:5)
作为Oracle国家here:
FORCE
如果要创建视图,请指定FORCE,无论是否 视图的基表或引用的对象类型存在或 包含视图的模式的所有者对它们具有特权。这些 在任何SELECT,INSERT,UPDATE或DELETE之前,条件必须为true 可以针对视图发布语句。
如果视图定义包含任何约束,则CREATE VIEW ... FORCE 如果基表不存在或引用的对象将失败 类型不存在。如果视图,CREATE VIEW ... FORCE也会失败 定义命名一个不存在的约束。
还要检查Terminator
和Pretty Print
以处理第二个问题;
使用Oracle SQL Developer Version 4.1.3.20 Build MAIN-20.78