oracle(PL/SQL)表操作:创建表时检查数据库是否存在该表,若存在删除再创建
来源:互联网 发布:聊天软件app 编辑:程序博客网 时间:2024/05/07 06:39
Technorati 标签: 在PL/SQL中创建表之前判断表是否存在 如果有就删除表的执行语句的书写
由于才开始使用PL/SQL来进行Oracle的客户端操作,由于以前使用sql 2005 来执行“创建表之前判断表是否存在 如果有就删除表,再创建”的操作语句非常简单:
1: if exists (
2: select * from sysobjects
3: where id = OBJECT_ID('STUDENTS]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
4: DROP TABLE [STUDENTS]
然而令我非常郁闷的是,用同样的方法在PL/SQL里却不能运行,提示编译错误。
后来去网上查了相关的帖子之后自己写了如下方法实现:
1: declare
2: cnt number;
3: begin
4: ---查询要创建的表是否存在
5: select count(*)into cnt from user_tables where table_name='STUDENTS';
6:
7: ---如果存在则删除该表
8: if cnt>0 then
9: execute immediate 'drop table STUDENTS';
10: dbms_output.put_line('表存在,删除成功!');
11: end if;
12: ---删除之后再创建该表
13: execute immediate 'CREATE TABLE STUDENTS
14: (
15: SNO NUMERIC(6, 0) NOT NULL,
16: SNAME CHAR (8) NOT NULL ,
17: AGE NUMERIC(3,0) ,
18: SEX CHAR(2) ,
19: BPLACE CHAR(20) ,
20: PRIMARY KEY(SNO)
21: )
22: tablespace Users' ;
23: end;
24:
对比之后,大家不难发现,PL/SQL是把sql语句做了一次包裹,才会避开编译检查。
- oracle(PL/SQL)表操作:创建表时检查数据库是否存在该表,若存在删除再创建
- oracle(PL/SQL)表操作:创建表时检查数据库是否存在该表,若存在删除再创建
- 判断数据库表是否存在,删除再创建
- Oracle创建表 如果存在先删除再创建
- 在删除表前,oracle如何判断表是否存在,存在就删再创建,不存在直接创建!
- oracle数据库判断表是否存在,存在删除,并创建新表
- SQL判断表或存储过程是否存在,若存在则删除然后重新创建
- 创建数据库同时检查该数据库是否存在
- sql server检查临时表是否存在
- sql server检查临时表是否存在
- ORACLE中判断表或视图是否存在,如果不存在再创建的方法
- 检查数据库中一个表是否存在
- SQL 语句创建表 添加、删除、修改字段 表是否存在 是否存在数据
- 判断SQL数据库是否存在表,是否存在记录
- SQLLite--判断表是否存在,存在则删除,反之创建
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- jquery ajax全解析
- Heritrix
- 假如让我从新读研究生
- P下安装IIS6.0的办法
- XP和Win7双系统GhostXP或重装XP后无法使用Win7的简单解决办法
- oracle(PL/SQL)表操作:创建表时检查数据库是否存在该表,若存在删除再创建
- Lua遍历数组
- Android GPS获取地理位置
- 完美解决iframe中session无法保留的问题
- 正则表达式
- c语言中的编程经历
- 在FreeBSD 7.2下安装JunOS 9.6
- Terracotta进行tomcat集群
- oracle imp时报IMP-00032,IMP-00008解决办法