Oracle数据库使用SQL检查表或者视图是否存在

2022-06-08 538点热度 0人点赞 0条评论

有一些业务逻辑,需要检测是否存在某个特定的表后做一些事情(例如数据库按年分表的情况下,定期检查是否存在下一年的表,不存在就新建表),以下SQL(指定是Oracle数据库)可以检测是否存在某张表或者视图(当然如果没有检测视图的需求,可以稍加修改),如果存在表,返回的cnt就大于0,不存在就返回count等于0

-- 如果select出来的结果等于0,说明不存在,大于0,说明表或者视图已存在

select count(*) as cnt
from all_objects
where object_type in ('TABLE','VIEW')
and object_name = 'USER_INFO_2021';

如果值检测表,或者要指定表的owner(可能不同的owner下有相同的表的名字)

-- 只检测表,且owner用户名是SOME_USER
select count(*) as cnt from all_objects where owner='SOME_USER' and object_type = 'TABLE' and object_name = 'USER_INFO_2021';

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论