在Oracle中若删除一个不存在的表,如 “DROP TABLE tableName”,则会提示:
ORA-00942:表或视图不存在
若在程序中执行该语句则会报异常,这就需要我们在删除表前先判断该表是否存在,若存在则删除.
DECLARE
num NUMBER;
BEGIN
SELECT COUNT(1)
INTO num
FROM USER_TABLES
WHERE TABLE_NAME = UPPER('tableName');
IF num > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE tableName';
END IF;
END;
在Oracle中若删除表中一个不存在的字段,如 “alter table test drop column xxx”,则会提示:
ORA-00904:”xxx”:标识符无效
若在程序中执行该语句则会报异常,这就需要我们在删除字段前先判断该字段是否存在,若存在则删除.
DECLARE
num NUMBER;
BEGIN
SELECT COUNT(1)
INTO num
from cols
where table_name = upper('tableName')
and column_name = upper('columnName');
IF num > 0 THEN
execute immediate 'alter table tableName drop column columnName';
END IF;
END;
您可能感兴趣的文章:- 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名
- Oracle数据库表中字段顺序的修改方法
- Oracle表字段的增删改、表的重命名及主键的增删改
- oracle获取当前用户表、字段等详细信息SQL
- oracle删除表字段和oracle表增加字段
- 在oracle 数据库查询的select 查询字段中关联其他表的方法
- Oracle表字段有Oracle关键字出现异常解决方案