Oracle判断某个表是否存在的方法
在SQL中,我们常常使用if exists来判断一个表或某个对象是否存在,例如:
IF EXISTS (SELECT * FROM sys.tables WHERE name = 'CODE_BMDM')
如果存在,则返回true,不存在则返回false。
但是在Oracle中这种方法就行不通了,我们只能通过使用select count(*) 的方式判断当前表是否存在,返回1则代表存在,0则代表不存在,例如:
SELECT COUNT(*) FROM User_Tables WHERE table_name = 'CODE_BMDM';(在SQL中使用这种方法亦可)
需要注意的是:表名(或者其他对象名)必须全部大写,有特殊字符的除外(表名之间有空格等特殊字符),否则查询不到。
其中的 User_Tables(用户下的所有表) 也可以换成dba_tables(管理员权限下的所有表) 或者all_tables(所有表)