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(所有表)

05-21 02:37