Oracle-创建或替换视图-保留列上的注释
我有一个固定列数的视图。这些列用注释指定 现在,我使用“创建或替换”更改视图sql(某些情况下)(不是手动更改,我的java应用程序的某些业务逻辑会更改此视图sql) 视图将被创建,并且工作正常。但唯一的问题是,添加到列中的所有注释都将丢失Oracle-创建或替换视图-保留列上的注释,oracle,Oracle,我有一个固定列数的视图。这些列用注释指定 现在,我使用“创建或替换”更改视图sql(某些情况下)(不是手动更改,我的java应用程序的某些业务逻辑会更改此视图sql) 视图将被创建,并且工作正常。但唯一的问题是,添加到列中的所有注释都将丢失 虽然我知道我们正在重写视图的ddl,但有没有办法在sql更改之后保留注释?创建或替换视图将创建。。。或者替换视图。也就是说,在它上面有一个隐含的下拉视图 如果您需要在不完全删除视图的情况下更改视图上的某些约束,您可能需要这样做。但是,您不能使用它来更改视图的
虽然我知道我们正在重写视图的ddl,但有没有办法在sql更改之后保留注释?
创建或替换视图
将创建。。。或者替换视图。也就是说,在它上面有一个隐含的下拉视图
如果您需要在不完全删除视图的情况下更改视图上的某些约束,您可能需要这样做。但是,您不能使用它来更改视图的定义
在您的特定情况下,当您需要更新WHERE
子句时,另一种选择可能是使用某种主视图,其中包含所有相关列和注释,但不包含WHERE
子句。并在其顶部有一个仅添加WHERE
子句的其他视图。这样,您只需在需要更新时替换第二级视图
正如be now在下面的评论中所注意到的,这有点过于简化了,因为*“特权在创建或替换<代码>后保留”。引用(我的重点):
指定或REPLACE
以重新创建视图(如果该视图已存在)。您可以使用此子句更改现有视图的定义,而无需删除、重新创建和重新排列以前授予它的对象权限
而不是
重新创建视图时,将删除视图中定义的触发器
创建或替换视图
将创建。。。或者替换视图。也就是说,在它上面有一个隐含的下拉视图
如果您需要在不完全删除视图的情况下更改视图上的某些约束,您可能需要这样做。但是,您不能使用它来更改视图的定义
在您的特定情况下,当您需要更新WHERE
子句时,另一种选择可能是使用某种主视图,其中包含所有相关列和注释,但不包含WHERE
子句。并在其顶部有一个仅添加WHERE
子句的其他视图。这样,您只需在需要更新时替换第二级视图
正如be now在下面的评论中所注意到的,这有点过于简化了,因为*“特权在创建或替换<代码>后保留”。引用(我的重点):
指定或REPLACE
以重新创建视图(如果该视图已存在)。您可以使用此子句更改现有视图的定义,而无需删除、重新创建和重新排列以前授予它的对象权限
而不是
重新创建视图时,将删除视图中定义的触发器
这并不是一个隐含的下拉视图
。特权在创建或替换
后保留,尽管触发了而不是
(如文档所述),显然,注释是not@beherenow是的,你说得很对,特权得到了保留。我可能应该提一下。这个问题现在已经解决了。感谢您的评论。这并不是一个隐含的下拉视图
。特权在创建或替换
后保留,尽管触发了而不是
(如文档所述),显然,注释是not@beherenow是的,你说得很对,特权得到了保留。我可能应该提一下。这个问题现在已经解决了。感谢您的评论。如果您养成了总是编辑源代码(当然,您已签入源代码管理)并仅以这种方式部署更改的习惯,则可以将注释包含在同一源文件中,以便在更改时,视图注释将被重新添加。如果您养成了总是编辑源代码(当然,您已签入源代码管理)并仅以这种方式部署更改的习惯,则可以将注释包含在同一源文件中,以便在更改时重新添加视图注释。