利用oracle中数据字典中的ALL_CATALOG视图可以查询到库中All tables, views, synonyms, sequences accessible to the user的信息
现在我们利用它来查询SYSTEM用户下是否存在表'T_SYS_USER'
select * from ALL_CATALOG t
where t.owner='SYSTEM'
and t.table_type='TABLE'
and t.table_name='T_SYS_USER'
注意:'SYSTEM' 、'TABLE'、'T_SYS_USER'都必须是大写
通过ALL_CATALOG视图可以很准确的判断一个表是否存在
假设p_table是表名变量,定义一个字符串变量v_strsql
if exists(select 1 from tab where tname = upper(p_table)) then
v_strsql:='drop table' || p_table --拼sql
execute immediate v_strsql;
end if;