oracle創建表之前判斷表是否存在,如果存在則刪除已有表


在sqlserver中,有if exit()這樣的語句,但是在oracle中卻沒有。如果直接使用drop table那么如果表不存在會報錯,導致后續語句無法運行。因此可以通過一個存儲過來來進行判斷。

主要是查詢all_tables表的TABLE_NAME和OWNER,如果表存在,則執行execute immediate 'drop table TABLE_NAME'; 

--判斷表是否存在,如果存在則刪除
declare 
      num   number; 
begin 
      select count(1) into num from all_tables where TABLE_NAME = 'EMP' and OWNER='SCOTT'; 
      if   num=1   then 
          execute immediate 'drop table EMP'; 
      end   if; 
end; 
/ 
--創建表
CREATE TABLE EMP
       (EMPNO NUMBER(4) NOT NULL,
        ENAME VARCHAR2(10),
        JOB VARCHAR2(9),
        MGR NUMBER(4),
        HIREDATE DATE,
        SAL NUMBER(7, 2),
        COMM NUMBER(7, 2),
        DEPTNO NUMBER(2));

可以將上述存儲過程加載到每一個create table前面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM