删除Oracle模式中的所有视图

时间:2015-06-30 21:52:50

标签: sql view oracle11g

我想要一个查询来删除我的oracle架构中的所有视图。我知道这不是正确的语法(或者我不会问),但我想要的想法如下:

DROP VIEW(SELECT view_name FROM user_views);

2 个答案:

答案 0 :(得分:5)

我崩溃并使用了如下的PL / SQL块:

    begin
      for i in (select view_name from user_views) loop
        execute immediate 'drop view ' || i.view_name;
      end loop;
    end;

如果有人知道单个查询解决方案,我仍然会很好奇。

答案 1 :(得分:2)

您可以使用此查询生成需要运行的语句(然后运行语句):

select 'drop view '||view_name||';' as statements
from all_views
where owner = 'YOUR_SCHEMA_NAME'

请注意,如果在特定情况下可能出现这样的情况,请不要无意中删除模式中可能由您以外的人创建并且可能需要的任何视图。例如,如果您使用Oracle Data Miner,它会在您创建工作流等时在架构中存储许多对象。