標籤:des style 使用 ar sp art on 代碼 ef
一、系統資料表:
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(所有表)
- declare
- v_exists number;
- begin
- --1、任務類型 TASK_TYPE_CD 建表...
- select count(*) into v_exists from user_tables where table_name = ‘EDW_T99_TASK_TYPE_CD‘;
- if v_exists > 0 then
- execute immediate ‘drop table EDW_T99_TASK_TYPE_CD‘;
- end if;
- execute immediate ‘
- create table EDW_T99_TASK_TYPE_CD
- (
- CODE_CD VARCHAR2(20) PRIMARY KEY,
- CODE_DESC VARCHAR2(100)
- )‘;
- execute immediate ‘comment on table EDW_T99_TASK_TYPE_CD is ‘‘任務類型‘‘‘;
- execute immediate ‘comment on column EDW_T99_TASK_TYPE_CD.CODE_CD is ‘‘代碼‘‘‘;
- execute immediate ‘comment on column EDW_T99_TASK_TYPE_CD.CODE_DESC is ‘‘代碼描述‘‘‘;
-
- --2、買入產品代碼 BUY_TYPE_CD 建表...
- select count(*) into v_exists from user_tables where table_name = ‘EDW_T99_BUY_TYPE_CD‘;
- if v_exists > 0 then
- execute immediate ‘drop table EDW_T99_BUY_TYPE_CD‘;
- end if;
- execute immediate ‘
- create table EDW_T99_BUY_TYPE_CD
- (
- CODE_CD VARCHAR2(20) PRIMARY KEY,
- CODE_DESC VARCHAR2(100)
- )‘;
- execute immediate ‘comment on table EDW_T99_BUY_TYPE_CD is ‘‘買入產品代碼‘‘‘;
- execute immediate ‘comment on column EDW_T99_BUY_TYPE_CD.CODE_CD is ‘‘代碼‘‘‘;
- execute immediate ‘comment on column EDW_T99_BUY_TYPE_CD.CODE_DESC is ‘‘代碼描述‘‘‘;
-
- end;
- /
Oracle——判斷對象是否存在(未完工)