打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
oracle创建表之前判断表是否存在,如果存在则删除已有表

转载:https://www.cnblogs.com/xwdreamer/archive/2012/06/18/2553415.html 

在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前面。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Oracle中的约束
Oracle 闪回特性(FLASHBACK DROP & RECYCLEBIN)
Oracle 如何删除一个用户下的所有表?
Oracle中高水位线(HWM)
oracle自定义存储过程:删除表(无论表是否存在)和检测表是否存在
Oracle 11g 的新特性 —— 虚拟列
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服