Oracle创建表时,常遇到先删除后创建的情况,而它又没有drop table... if exists语法。为此可以使用user_objects数据字典和动态sql语句实现类似的功能,如下所示:
create or replace procedure proc_dropifexists(
p_table in varchar2
) is
v_count number(10);
begin
select count(*)
into v_count
from user_objects
where object_name = upper(p_table);
if v_count > 0 then
execute immediate 'drop table ' || p_table ||' purge';
end if;
end;
/
--调用
exec proc_dropifexists('mytable');
分享到:
相关推荐
MySQL的: drop table if exists 表名; SQL Server的: IF EXISTS (SELECT name FROM sysobjects WHERE name = '表名' AND type = 'U') DROP TABLE 表名; Oracle的: create or replace table 表名 ...; -- 直接写...
在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示: ORA-00942:表或视图不存在 若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除. DECLARE num NUMBER;...
Oracle数据库系统中,`DROP TABLE`命令没有`IF EXISTS`选项。这意味着如果你尝试删除一个不存在的表,将会引发一个错误。为了避免这个错误,你需要使用PL/SQL的异常处理。下面的代码块展示了如何在Oracle中安全地...
"oracle-use.rar_Oracle drop use_oracle"这个压缩包包含了与Oracle数据库使用相关的多个文档,包括查询、操作、PL/SQL语法、数据导入导出、连接配置以及备份恢复等方面的知识。 首先,我们来关注"插入数据"这一...
项目应用中,曾有以下一个场景: 接口中要求发送一个int类型的流水号,由于多线程模式,如果用时间戳,可能会有重复的情况...DROP TABLE IF EXISTS sequence; CREATE TABLE sequence ( name VARCHAR(50) NOT NULL,
删除数据表的命令是`DROP TABLE`,如果想确保表存在才删除,可以使用`DROP TABLE IF EXISTS`。例如,删除名为demo01的表可以写为`DROP TABLE IF EXISTS demo01;`。 总的来说,MySQL的学习涵盖了数据库的基本概念、...
DROP TABLE IF EXISTS `sys_area`; CREATE TABLE `sys_area` ( `code` varchar(20) NOT NULL default '' COMMENT '行政区划编码', `parent_code` varchar(20) default NULL COMMENT '父级行政区划编码', `name` ...
DROP TABLE IF EXISTS table_name; CREATE TABLE table_name (column_definition,...); ``` - **SQL Server**: ```sql IF EXISTS (SELECT name FROM sysobjects WHERE name = 'table_name' AND type = 'U') ...
DROP TABLE IF EXISTS `sequence`; CREATE TABLE `sequence` ( `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL, `current_value` int(11) NOT NULL, `increment` int(11) NOT NULL ...
前言 最近同事发现了一个问题,在12c中跑的buffer get很高,但是在10g中跑的buffer很低。...drop table t1; drop table t2; create table t1 (id number,name varchar2(20),dep_id varchar2(10)); create table t
DROP TABLE IF EXISTS teacher; DROP TABLE IF EXISTS student; -- 创建表 CREATE TABLE teacher (teaID INT PRIMARY KEY, name VARCHAR(50), age INT); CREATE TABLE student (stuID INT PRIMARY KEY, name ...
` 或 `DROP TABLE IF EXISTS 表名;` - **修改表**:可以更改表名、字段名、字段类型等,如`ALTER TABLE 表名 RENAME AS 新表名;` 或 `ALTER TABLE 表名 CHANGE 原字段名 新字段名 新类型;` - **添加字段**:使用`...
2. DROP TABLE:删除一个数据库表,例如`DROP TABLE IF EXISTS table_name;` 3. ALTER TABLE:修改数据库表结构,如添加、删除或修改字段,例如`ALTER TABLE table_name ADD column_name datatype;` 4. CREATE VIEW...
DROP TABLE IF EXISTS table_name; ``` 11. **索引** 索引用于加速查询,可使用`CREATE INDEX`创建,`DROP INDEX`删除: ``` CREATE INDEX index_name ON table_name (column_name); DROP INDEX index_name; ...
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.function_name') AND type in (N'FN', N'IF', N'TF')) DROP FUNCTION dbo.function_name; GO CREATE FUNCTION dbo.function_name (@p...
MySQL使用`DROP TABLE IF EXISTS`,SQL Server使用`IF EXISTS`和`DROP TABLE`,而Oracle则直接在创建表的语句中用`CREATE OR REPLACE TABLE`来覆盖已存在的表。 3. **建表语句**: 创建表的语句定义了表的结构,...
在此示例中,首先通过`DROP TABLE IF EXISTS`语句删除已存在的`student`表,然后创建一个新的`student`表,并定义了四个字段:`id`、`name`、`birth`和`score`。接着使用`INSERT INTO`语句向表中插入了三条记录。 ...