Oracle SQL Developer - 如何以正确的依赖顺序生成脚本

Jem*_*mru 1 oracle oracle11g oracle-sqldeveloper oracle-export-dump

我想生成创建脚本,将创建非常多的数据库视图.我知道如何在Oracle SQL Developer中使用菜单:工具>数据库导出.但是我遇到了导出创建视图脚本的问题.以下是问题.

问题#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;
Run Code Online (Sandbox Code Playgroud)

问题#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;
Run Code Online (Sandbox Code Playgroud)

谢谢.

Non*_*ika 5

正如Oracle 在这里所说:

如果要创建视图,请指定FORCE,无论视图的基表或引用的对象类型是否存在,或者包含该视图的模式的所有者是否具有对它们的特权.在对视图发出任何SELECT,INSERT,UPDATE或DELETE语句之前,这些条件必须为true.

如果视图定义包含任何约束,则如果基表不存在或引用的对象类型不存在,则CREATE VIEW ... FORCE将失败.如果视图定义命名不存在的约束,则CREATE VIEW ... FORCE也将失败.

还检查TerminatorPretty Print处理第二个问题;

在此输入图像描述

经过测试 Oracle SQL Developer Version 4.1.3.20 Build MAIN-20.78