如何在不删除和创建视图的情况下修改DB2视图查询

如何在不删除和创建视图的情况下修改DB2视图查询,db2,Db2,我需要修改DB2视图的查询,而不删除和创建该视图 我使用DB Visualizer,并尝试了ALTER VIEW命令,但在“ALTER”之后发现了意外标记“VIEW” 关于如何解决这个问题有什么想法吗?签出功能-它也被称为软失效并在引用的页面上详细描述。签出功能-它也被称为软失效并在引用的页面上详细描述。下面是一个示例脚本,如何修改视图。它在V11.5ga、aix7.1上运行良好,没有任何错误 #!/bin/sh db2 -v "drop db db1" db2 -v "create db d

我需要修改DB2视图的查询,而不删除和创建该视图

我使用DB Visualizer,并尝试了ALTER VIEW命令,但在“ALTER”之后发现了意外标记“VIEW”


关于如何解决这个问题有什么想法吗?

签出功能-它也被称为软失效并在引用的页面上详细描述。

签出功能-它也被称为软失效并在引用的页面上详细描述。

下面是一个示例脚本,如何修改视图。它在V11.5ga、aix7.1上运行良好,没有任何错误

#!/bin/sh

db2 -v "drop db db1"
db2 -v "create db db1"
db2 -v "connect to db1"
db2 -v "create table t1 (c1 int, c2 char(10), c3 char(10))"
db2 -v "insert into t1 values (1, 'aaa', 'AAA')"
db2 -v "insert into t1 values (2, 'bbb', 'BBB')"

db2 -v "create view v1 as select c1, c2 from t1"
db2 -v "select * from v1"
db2 -v "create or replace view v1 as select c1, c2, c3 from t1"
db2 -v "select * from v1"

db2 -v "terminate"
第一个select*from v1返回2列,但第二个select*from v1返回3列,因为它被替换为新的v1


希望这有帮助。

这里是一个示例脚本,介绍如何修改视图。它在V11.5ga、aix7.1上运行良好,没有任何错误

#!/bin/sh

db2 -v "drop db db1"
db2 -v "create db db1"
db2 -v "connect to db1"
db2 -v "create table t1 (c1 int, c2 char(10), c3 char(10))"
db2 -v "insert into t1 values (1, 'aaa', 'AAA')"
db2 -v "insert into t1 values (2, 'bbb', 'BBB')"

db2 -v "create view v1 as select c1, c2 from t1"
db2 -v "select * from v1"
db2 -v "create or replace view v1 as select c1, c2, c3 from t1"
db2 -v "select * from v1"

db2 -v "terminate"
第一个select*from v1返回2列,但第二个select*from v1返回3列,因为它被替换为新的v1


希望这有帮助。

AFAIK,修改视图查询最终意味着删除并重新创建视图。您不能更改视图,您可以删除或创建它。但是,如果您有正确的权限并从新视图中选择,则可以使用不同的名称创建新视图。我需要修改DB2视图的查询,而不删除和创建该视图。-为什么?好吧,修改视图查询最终意味着删除并重新创建视图。您不能更改视图,您可以删除或创建它。但是,如果您有正确的权限并从新视图中选择,则可以使用不同的名称创建新视图。我需要修改DB2视图的查询,而不删除和创建该视图。-为什么?