zoukankan      html  css  js  c++  java
  • 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前面。

  • 相关阅读:
    ubuntu18.04安装g2o
    akka学习
    spark学习记录-2
    spark学习记录-1
    c++ string需要注意的地方
    clion server激活地址
    【转】c++面试基础
    c++反射概念-简单介绍
    死锁的理解
    c++ 反射类型
  • 原文地址:https://www.cnblogs.com/xwdreamer/p/2553415.html
Copyright © 2011-2022 走看看