Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle SQL Developer-如何按依赖项的正确顺序生成脚本_Oracle_Oracle11g_Oracle Sqldeveloper_Oracle Export Dump - Fatal编程技术网

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

Oracle SQL Developer-如何按依赖项的正确顺序生成脚本,oracle,oracle11g,oracle-sqldeveloper,oracle-export-dump,Oracle,Oracle11g,Oracle Sqldeveloper,Oracle Export Dump,我想生成创建脚本,将创建所有的数据库视图,这是非常多的。 我知道如何在OracleSQLDeveloper中使用菜单:工具>数据库导出。但是,在执行导出创建视图脚本时遇到问题。以下是问题 问题#1视图的创建顺序不正确。在下面的示例中,MY_VIEW_B首先在脚本中创建,然后再创建其依赖项MY_VIEW_A。如何生成依赖项顺序正确的脚本 CREATE OR REPLACE MY_VIEW_B ("COLUMN1", "COLUMN2") AS SELECT "COLUMN1", "COLUMN2"

我想生成创建脚本,将创建所有的数据库视图,这是非常多的。 我知道如何在OracleSQLDeveloper中使用菜单:工具>数据库导出。但是,在执行导出创建视图脚本时遇到问题。以下是问题

问题#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;
谢谢。

正如Oracle所说:

强迫

如果要创建视图,无论 视图或引用对象类型的基表存在,或 包含视图的架构的所有者对其具有权限。这些 在进行任何选择、插入、更新或删除之前,条件必须为true 可以针对该视图发布声明

如果视图定义包含任何约束,请创建视图。。。强迫 如果基表不存在或引用的对象不存在,则将失败 类型不存在。创建视图。。。如果视图 定义命名不存在的约束

同时检查
Terminator
Pretty Print
以处理第二个问题

使用Oracle SQL Developer版本4.1.3.20 Build MAIN-20.78测试,如Oracle所述:

强迫

如果要创建视图,无论 视图或引用对象类型的基表存在,或 包含视图的架构的所有者对其具有权限。这些 在进行任何选择、插入、更新或删除之前,条件必须为true 可以针对该视图发布声明

如果视图定义包含任何约束,请创建视图。。。强迫 如果基表不存在或引用的对象不存在,则将失败 类型不存在。创建视图。。。如果视图 定义命名不存在的约束

同时检查
Terminator
Pretty Print
以处理第二个问题


使用Oracle SQL Developer Version 4.1.3.20 Build MAIN-20.78进行了测试,您似乎很顺利@NonikaHi Nonika。谢谢你的回复。也很抱歉我的回复太晚。测试时,当选中“漂亮打印”和“终止符”时,分号自动带到DB视图代码的最后一行,但最后一行是注释。因此,它会有类似于“--comment”的内容,这将导致错误,因为它不再正确结束。但是,当我取消选中“终止符”时,它将删除最后一个分号,结果是最后一行将是:“--comment”只在最后一行注释之后没有分号,因此它也会出错,因为它没有正确结束。嗨,Nonika。但使用原力帮助我解决了问题。问题2仍然没有解决。所以还是要谢谢你。如果你有sed工具,试试导出的文件:
sed-E“s/(-.*)(;$)/\1\n\2/“foo.sql
你看起来很兴奋@NonikaHi Nonika。谢谢你的回复。也很抱歉我的回复太晚。测试时,当选中“漂亮打印”和“终止符”时,分号自动带到DB视图代码的最后一行,但最后一行是注释。因此,它会有类似于“--comment”的内容,这将导致错误,因为它不再正确结束。但是,当我取消选中“终止符”时,它将删除最后一个分号,结果是最后一行将是:“--comment”只在最后一行注释之后没有分号,因此它也会出错,因为它没有正确结束。嗨,Nonika。但使用原力帮助我解决了问题。问题2仍然没有解决。所以还是要谢谢你。如果你有sed工具,试试导出的文件:
sed-E“s/(-.*)(;$)/\1\n\2/“foo.sql
Issue#1已经解决了。但问题2尚未解决。分号自动带到注释的最后一行。最后一行的顺序应该是1。)注释部分2。)分号。但即使我取消选中“漂亮的印刷品”也是一样的。问题1已经解决了。但问题2尚未解决。分号自动带到注释的最后一行。最后一行的顺序应该是1。)注释部分2。)分号。但即使我不检查“漂亮的印刷品”仍然是一样的。