Oracle删除表、字段之前判断表、字段是否存在
在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;
相关推荐
-
解析如何查看Oracle数据库中某张表的字段个数
Oracle中查询某个表的总字段数,要用SQL语句,或者在PL/SQL里面 复制代码 代码如下: select count(column_name) from user_tab_columns where table_name='T_B_AUDITOR' 能够查出来指定的那张表的字段数.下面是通过大致查看:select tname,count(*) from col group by tname; 复制代码 代码如下: 64 T_A_BOOKSTAGEINFO 465 T
-
oracle获取当前用户表、字段等详细信息SQL
做个笔记,仅供参考 SELECT d.TABLE_NAME tbName,//表名 COALESCE(t.COMMENTS, ' ') tbDesc, //表注释 a.COLUMN_NAME columnName, //字段名 a.DATA_TYPE columnType, //字段类型 a.DATA_LENGTH width, //字段长度 a.DATA_SCALE precision,//字段小数位 decode(a.NULLABLE,'Y','0','1') notNull,//是否允许空
-
oracle 使用sql获取数据库表、表的字段的多种方法
--第一种方法: 查询dba_tab_columns 复制代码 代码如下: select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from dba_tab_columns where table_name =upper('表名') order by COLUMN_NAME --这种方法需要有DBA权限 --第二种方法: 查询user_tab_cols select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_cols
-
在oracle 数据库查询的select 查询字段中关联其他表的方法
大部分情况下,这种动态生成的sql查询语句写法如下: 复制代码 代码如下: select A表.字段1,A表.字段2,B表.字段返回,C表.字段返回 from A表 ,B表,C表 [where A表,B表,C表关联及各自的条件语句] 但是这个方法有一个缺点,那就是在动态的生成这个查询语句的业务逻辑程序仍然很复杂.这里就介绍一个降低业务逻辑复杂度的查询sql生成方式.其语法结构如下: 复制代码 代码如下: select A表.字段1,A表.字段2,B表.字段,C表.字段 from A表 [wher
-
oracle删除表字段和oracle表增加字段
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],-.); 删除字段的语法:alter table tablename drop (column); 添加.修改.删除多列的话,用逗号隔开. 使用alter
-
Oracle 查询表信息获取表字段及字段注释
获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * from user_tab_comments where Table_Name='用户表' order by Table_Name 获取字段注释: select * from user_col_comments where Table_Name='用户表' order by column_name /*
-
oracle用什么SQL语句判断表存不存在
正在看的ORACLE教程是:oracle用什么SQL语句判断表存不存在.SQL SERVER用来判断表或视图存在的语句在ORACLE中不能用,请问该怎么写. 谢谢. 提问者: - 最佳答案 exists(select tname from tab where tname ='TABLENAME') 记得表名要大写,因为ORACLE是区分大小写的,所有的表名都存放在tab表中
-
使用layer弹窗提交表单时判断表单是否输入为空的例子
获得 layer 文件包后,解压并将 layer 整个文件夹(不要拆分结构) 存放到你项目的任意目录,使用时,只需引入 layer.js 即可 使用时一定他要先引入jq1.8,或者以上版本!!! 下面是提交表单的实列 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=devi
-
Oracle删除表、字段之前判断表、字段是否存在
在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 EXECUT
-
Oracle删除当前用户下所有表的方法适用于有或没有删除权限
1.如果有plsql客户端,则可以使用该用户登录,选中所有表 右键Drop即可. 2.如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉. 删除后再创建该用户. --创建用户 create user 用户名 profile default identified by 密码 default tablespace 表空间名称 temporary tablespace TEMP account unlock; --
-
用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP COLUMN column_NAME 3.修改字段类型 ALTER TABLE table_name ALTER COLUMN column_name new_data_type 4.sp_rename 改名 更改当前数据库中用户创建对象(如表.列或用户定义数据类型)的名称. 语法 sp_rename
-
SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法
SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二: select * from testtable where numeber in (select number from people group by numbe
-
Oracle删除表前判断表名是否存在若存在则删除
在Oracle中若删除一个不存在的表,如 "DROP TABLE notExistTable",则会提示: ORA-00942:表或视图不存在, 若使用程序执行该语句则会报异常,这就需要我们再删除表前判断该表是否存在,若存在则删除. 下面是不使用存储过程实现删除表的SQL: 复制代码 代码如下: <span style="font-family:Times New Roman;font-size:18px;">DECLARE num NUMBER; BE
-
Oracle 删除用户和表空间详细介绍
Oracle 删除用户和表空间 Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop user ×× cascade 说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的. 步骤二: 删除tablespace DROP TABLESPACE tablespace_name INCLUDI
-
Oracle删除字段中的空格、回车及指定字符的实例代码
废话不多说了,直接给大家贴代码了,具体代码如下所示: create or replace procedure PROC_test is --Description:删除字段中的指定字符(回车chr(13).换行chr(10)) --By LiChao --Date:2016-03-01 colname varchar(20); --列名 cnt number; --包含换行符的列的行数 v_sql varchar(2000); --动态SQL变量 begin --读取表中的列 for col i
-
mysql判断表是否存在然后批量删除的操作
1.在网上找了许久都没有找到判断表是否存在,然后模糊删除的.但是最后找到了一个曲线救国的方法. 需求:删除表中后缀是 _待删除 的表 1.第一步,找到所有的这样的表,并且拼装好删除表的sql Select CONCAT( 'DROP TABLE IF EXISTS ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE '%_待删除'; 执行结果 2.第二步:去一一执行删除语句,有能力的可以去写一个脚本执
随机推荐
- python urllib中的编码处理示例
- iOS贝塞尔曲线画哆啦A梦的代码实例
- mysql 超大数据/表管理技巧
- 微信小程序实现图片自适应(支持多图)
- 原创批处理之网站屏蔽与解除屏蔽批处理
- iOS图片拉伸小技巧
- JavaScript cookie的设置获取删除详解
- 老生常谈php 正则中的i,m,s,x,e分别表示什么
- php实现兼容2038年后Unix时间戳转换函数
- 一个开发人员眼中的JSP技术(上)
- 解析WordPress中函数钩子hook的作用及基本用法
- Android优化之启动页去黑屏实现秒启动
- 谈一谈javascript闭包
- 模拟打印机排队打印效果
- 深入了解Redis的性能
- mysql 索引的基础操作汇总(四)
- 鼠标拖动实现DIV排序示例代码
- jquery实现搜索框常见效果的方法
- FireFox与IE 下js兼容触发click事件的代码
- 详解springMVC容器加载源码分析