MySQL与oracle报错显示_ORACLE中判断表是否存在再删除表避免报错与MySql和SqlServer的不同...

不同数据库中drop a table if it exists的不同:

In MySQL it is pretty easy to drop a table if it exists already. In Oracle and Microsoft’s SQL Server it is a little more complicated. Today I want to present you the solutions for these two DBMS’.MySQL:

DROP TABLE IF EXISTS [table_name]

Oracle:

BEGIN

EXECUTE IMMEDIATE 'DROP TABLE [table_name]';

EXCEPTION WHEN OTHERS THEN NULL;

END;

SQL Server:

IF EXISTS (

SELECTTABLE_NAME FROM INFORMATION_SCHEMA.TABLES

WHERETABLE_NAME = '[table_name]')

DROP TABLE[table_name]

ORACLE中先判断表是否存在再新建表一例:

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;

/

此例用在数据仓库项目的建T99代码表脚本方案上;此脚本在方案中用Perl根据Excel生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值