如何在oracle上删除有条件的表?

时间:2017-09-27 03:53:22

标签: oracle

就像这样:

drop table  xxxx where table_name like 'v_%';

我可以从数据库中检索表名,但我不知道如何用简单的方法。 表格来自:

select table_name from user_tables wher table_name like 'v_%';

2 个答案:

答案 0 :(得分:0)

使用PL / SQL代码可以这样做:

set serveroutput on;

begin
    for table_record in (select table_name from user_tables where table_name like 'v_%')
    loop
        execute immediate 'DROP TABLE ' || table_record.table_name ;
        dbms_output.put_line('Table ' ||  table_record.table_name  || ' dropped' );
    end loop;
end;
/

答案 1 :(得分:0)

用于生成脚本以删除表或其他对象(索引,包)的示例sql代码。 此示例更安全,因为允许您在删除对象之前查看要删除的列表。

  select 'drop '|| object_type||' '||owner||'.'||object_name||' cascade constraints ;'
    from all_objects
    where owner='ASUZM'
    and object_type in ('TABLE')
    and object_name like 'V%'
    order by object_type;