首页 > 代码库 > Oracle——判断对象是否存在(未完工)

Oracle——判断对象是否存在(未完工)

一、系统表:

1、User_Tables:存储用户下的所有表的信息;

2、dba_tables:存储管理员权限下的所有表的信息;

3、all_tables:存储所有表的信息。

二、判断对象是否存在

1、判断表

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

 

 

 

  1. declare  
  2.  v_exists number;  
  3. begin  
  4.        --1、任务类型 TASK_TYPE_CD 建表...  
  5.     select count(*) into v_exists from user_tables where table_name = ‘EDW_T99_TASK_TYPE_CD‘;  
  6.     if v_exists > 0 then  
  7.     execute immediate ‘drop table EDW_T99_TASK_TYPE_CD‘;  
  8.     end if;  
  9.     execute immediate ‘  
  10.     create table EDW_T99_TASK_TYPE_CD  
  11.     (  
  12.       CODE_CD   VARCHAR2(20) PRIMARY KEY,  
  13.       CODE_DESC VARCHAR2(100)  
  14.     )‘;  
  15.     execute immediate ‘comment on table EDW_T99_TASK_TYPE_CD is ‘‘任务类型‘‘‘;  
  16.     execute immediate ‘comment on column EDW_T99_TASK_TYPE_CD.CODE_CD is ‘‘代码‘‘‘;  
  17.     execute immediate ‘comment on column EDW_T99_TASK_TYPE_CD.CODE_DESC is ‘‘代码描述‘‘‘;  
  18.   
  19.        --2、买入产品代码 BUY_TYPE_CD 建表...  
  20.     select count(*) into v_exists from user_tables where table_name = ‘EDW_T99_BUY_TYPE_CD‘;  
  21.     if v_exists > 0 then  
  22.     execute immediate ‘drop table EDW_T99_BUY_TYPE_CD‘;  
  23.     end if;  
  24.     execute immediate ‘  
  25.     create table EDW_T99_BUY_TYPE_CD  
  26.     (  
  27.       CODE_CD   VARCHAR2(20) PRIMARY KEY,  
  28.       CODE_DESC VARCHAR2(100)  
  29.     )‘;  
  30.     execute immediate ‘comment on table EDW_T99_BUY_TYPE_CD is ‘‘买入产品代码‘‘‘;  
  31.     execute immediate ‘comment on column EDW_T99_BUY_TYPE_CD.CODE_CD is ‘‘代码‘‘‘;  
  32.     execute immediate ‘comment on column EDW_T99_BUY_TYPE_CD.CODE_DESC is ‘‘代码描述‘‘‘;  
  33.          
  34. end;  
  35. /  

 

Oracle——判断对象是否存在(未完工)