Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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-创建或替换视图-保留列上的注释_Oracle - Fatal编程技术网

Oracle-创建或替换视图-保留列上的注释

Oracle-创建或替换视图-保留列上的注释,oracle,Oracle,我有一个固定列数的视图。这些列用注释指定 现在,我使用“创建或替换”更改视图sql(某些情况下)(不是手动更改,我的java应用程序的某些业务逻辑会更改此视图sql) 视图将被创建,并且工作正常。但唯一的问题是,添加到列中的所有注释都将丢失 虽然我知道我们正在重写视图的ddl,但有没有办法在sql更改之后保留注释?创建或替换视图将创建。。。或者替换视图。也就是说,在它上面有一个隐含的下拉视图 如果您需要在不完全删除视图的情况下更改视图上的某些约束,您可能需要这样做。但是,您不能使用它来更改视图的

我有一个固定列数的视图。这些列用注释指定

现在,我使用“创建或替换”更改视图sql(某些情况下)(不是手动更改,我的java应用程序的某些业务逻辑会更改此视图sql)

视图将被创建,并且工作正常。但唯一的问题是,添加到列中的所有注释都将丢失


虽然我知道我们正在重写视图的ddl,但有没有办法在sql更改之后保留注释?

创建或替换视图
将创建。。。或者替换视图。也就是说,在它上面有一个隐含的
下拉视图

如果您需要在不完全删除视图的情况下更改视图上的某些约束,您可能需要这样做。但是,您不能使用它来更改视图的定义

在您的特定情况下,当您需要更新
WHERE
子句时,另一种选择可能是使用某种主视图,其中包含所有相关列和注释,但不包含
WHERE
子句。并在其顶部有一个仅添加
WHERE
子句的其他视图。这样,您只需在需要更新时替换第二级视图


正如be now在下面的评论中所注意到的,这有点过于简化了,因为*“特权在创建或替换<代码>后保留”。引用(我的重点):

指定
或REPLACE
以重新创建视图(如果该视图已存在)。您可以使用此子句更改现有视图的定义,而无需删除、重新创建和重新排列以前授予它的对象权限

而不是
重新创建视图时,将删除视图中定义的触发器


创建或替换视图
将创建。。。或者替换视图。也就是说,在它上面有一个隐含的
下拉视图

如果您需要在不完全删除视图的情况下更改视图上的某些约束,您可能需要这样做。但是,您不能使用它来更改视图的定义

在您的特定情况下,当您需要更新
WHERE
子句时,另一种选择可能是使用某种主视图,其中包含所有相关列和注释,但不包含
WHERE
子句。并在其顶部有一个仅添加
WHERE
子句的其他视图。这样,您只需在需要更新时替换第二级视图


正如be now在下面的评论中所注意到的,这有点过于简化了,因为*“特权在创建或替换<代码>后保留”。引用(我的重点):

指定
或REPLACE
以重新创建视图(如果该视图已存在)。您可以使用此子句更改现有视图的定义,而无需删除、重新创建和重新排列以前授予它的对象权限

而不是
重新创建视图时,将删除视图中定义的触发器


这并不是一个隐含的
下拉视图
。特权在
创建或替换
后保留,尽管触发了
而不是
(如文档所述),显然,注释是not@beherenow是的,你说得很对,特权得到了保留。我可能应该提一下。这个问题现在已经解决了。感谢您的评论。这并不是一个隐含的
下拉视图
。特权在
创建或替换
后保留,尽管触发了
而不是
(如文档所述),显然,注释是not@beherenow是的,你说得很对,特权得到了保留。我可能应该提一下。这个问题现在已经解决了。感谢您的评论。如果您养成了总是编辑源代码(当然,您已签入源代码管理)并仅以这种方式部署更改的习惯,则可以将注释包含在同一源文件中,以便在更改时,视图注释将被重新添加。如果您养成了总是编辑源代码(当然,您已签入源代码管理)并仅以这种方式部署更改的习惯,则可以将注释包含在同一源文件中,以便在更改时重新添加视图注释。