oracle删除视图的方法是什么?

发布网友 发布时间:2022-04-20 03:58

我来回答

2个回答

热心网友 时间:2022-05-05 21:01

首先,要明白视图的原理。

视图的数据都产生于表,视图本身是没有数据的,而表才是真正的数据来源。

还有多级的视图,就是从视图还可以继续创建视图。

所以,视图的数据来源是表或视图。但是最终的数据源一定是表。

什么样的视图数据是可以使用DELETE的?只有从单表引过来的视图是可以的,这样的视图操作实际就相当于操作表,但是DROP VIEW不会对数据有任何影响。其他形势的视图,都是不可能删除数据的。但是DROP VIEW同样可以。

视图只是根据关联关系从表中抓取数据。实际并没有像表一样有专门的存储这些数据。只是从表里引过来而已。只要你时刻记住,视图实际上并没有实际的存储数据,而是借用表的数据,这就够了。无论你创建或者删除视图,都不会影响数据本身。否则你想想,你创建了一个视图的时候,没想过为什么一下子就有了那么多数据了呢?也不是你插入的,因为就是从表引过来的而已。

删除视图的语句是DROP VIEW 视图名字

所以删除视图,不会对数据有任何影响。因为数据都在表中。想要恢复视图,重新创建,你的几千万条数据就又会出现了。视图的效果和SELECT查询一样,只是能把这个查询固定了,以便你直接拿来用。

热心网友 时间:2022-05-05 22:19

用建视图的用户登陆,执行下面代码,可以删除所有视图,但是慎重哈。
前提是该用户有执行代码权限。
begin
for cur in (select view_name from user_views) loop
execute immediately 'drop view '|| cur.view_name ||';';
end loop;
end;
/
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com