Oracle表存在则删除后再重建

Posted 坚守梦想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle表存在则删除后再重建相关的知识,希望对你有一定的参考价值。

简单的执行方式:

drop table USERINFO;
create table USERINFO
(
 EnglishName varchar(30),
 ChineseName varchar(30),
 Sex varchar(10),
 Age int,
 BirthPlace varchar(100),
 BirthDate date default sysdate
);

上面的方式有个缺陷,如果表不存在,那么会drop语句会报错

ORA-00942: table or view does not exist

 

 

更加优秀的执行方式:

declare 
w_count int;
w_name varchar(20);
begin
w_name:=\'USERINFO\';
select count(*) into w_count from user_tables where table_name = w_name;
if(w_count>0) then
execute immediate \'drop table USERINFO\';
end if;
execute immediate \'create table USERINFO
(
   EnglishName varchar(30),
   ChineseName varchar(30),
   Sex varchar(10),
   Age int,
   BirthPlace varchar(100),
   BirthDate date default sysdate
)\';
end;

 

以上是关于Oracle表存在则删除后再重建的主要内容,如果未能解决你的问题,请参考以下文章

oracle创建表之前判断表是不是存在,如果存在则删除已有表

oracle创建表之前判断表是不是存在,如果存在则删除已有表

如果存在则删除表 Oracle,SQL Developer [重复]

Oracle如何判断表存在,若存在则进行删除

Oracle删除表字段之前判断表字段是否存在

删除掉mysql 的.ibd,.frm,ibdata1,ib_logfile0和ib_logfile1文件后再drop表。然后重建此表,有问题吗