oracle查询某表是否存在,oracle判断表中某记录是否存在的方法
很多人喜欢用这样的方法来判断是否存在记录:
select count(*) into t_count from t where condition;
if t_count> 0 then ....
这种方法的问题在于:我们需要的仅仅是是否存在,而不是得到总记录数。查询记录总数付出了不必要的性能代价。
两种情况:
1. 如果判断是否存在记录后, 要查询记录中的某些列的信息,或者是决定要对表进行insert/update操作,典型的操作为:
a.
select count(*) into t_count from t where condition;if t_count> 0 then select cols into t_cols from t where condition;else otherstatement;end;b.
select count(*) into t_count from t where condition;if t_count> 0 then update ...;else insert ...;end;这两种操作,都可以采用直接操作,然后进行例外处理的方式,根本就不进行这个存在性判断!改写后的a.
begin select cols into t_cols from t where condition;exception when no_data_found then begin statement-block2; end; when others then begin raise error... end;end;改写后的b.
update t set ... where condition;IF SQL%NOTFOUND THEN insert into t ...END IF;或者:
begin insert into t ...exception when DUP_VAL_ON_INDEX then begin update t set ... end;end;这两种方法使用哪一种,取决于你认为哪种情况出现的可能更高。2. 如果判断是否存在记录来决定是否进行其它操作, 如下例
select count(*) into t_count from t where condition;if t_count> 0 then ....则可以改成这样的语句:
select count(*) into t_count from dual where exists(select 1 from t where condition);if t_count> 0 then ....使用改写后的语句,多数情形下应该会有比原来的语句更好的性能。(当然, 如果你要查询的表本身是一个单行或只有几行记录的表, 直接查询应该会更好)
oracle查询某表是否存在,oracle判断表中某记录是否存在的方法相关推荐
- php如何查询数据是否存在,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程...
PHP判断数据库中的记录是否存在的方法,php数据库 本文实例讲述了PHP判断数据库中的记录是否存在的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $sql="se ...
- php判断记录,PHP判断数据库中的记录是否存在的方法,php数据库_PHP教程
PHP判断数据库中的记录是否存在的方法,php数据库 本文实例讲述了PHP判断数据库中的记录是否存在的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: $sql="se ...
- oracle如何查看表的字段是否存在,Oracle删除表、字段之前判断表、字段是否存在...
Oracle删除表.字段之前判断表.字段是否存在 在Oracle中若删除一个不存在的表,如 "DROP TABLE tableName",则会提示: ORA-00942:表或视图不 ...
- Oracle查询字段以外的内容,Oracle查询字段内容为非数字的记录
今天在一张3W多记录的表里查非数字的异常数据~数据库太水,记录一发,因为2.5使用人员误输入为2..5.... select t.routecardlist_id,trim(translate(RTR ...
- oracle 查询表里信息_查看ORACLE 数据库及表信息
-- 查看ORACLE 数据库中本用户下的所有表SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表select user,tab ...
- oracle查询一小时内数据,ORACLE 查询近一天, 近半小时内的数据
ORACLE 查询近一天, 近半小时内的数据 SELECT 字段 FROM 表名 WHERE 时间字段 BETWEEN SYSDATE-1 AND SYSDATE; // 查询一天内的数据 sysda ...
- oracle查询sql走索引吗,Oracle SQL不走索引小记
sql执行计划不走索引 一.优化器认为走全表扫描更优. 在这种情况下,需要重新分析一遍表,更新表的状态,有助于优化器分析出正确的执行计划. analyze table tablename comput ...
- java oracle查询结果list取数,Oracle函数返回Table集合
Oracle table()函数查询函数返回的结果集 2015年12月13日 22:42:51 warrenjiang 阅读数:7452 版权声明:本文为博主原创文章,未经博主允许不得转载. http ...
- oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session
SPID一一system process id,表示该server process在OS层面的Porcess ID PID一一Oracle process id,可以理解Oracle给自己的进程的一个 ...
- Oracle查询示例内存等信息,Oracle基本信息检查
1. 检查Windows下的Oracle相关服务的状态 主要服务包括: 2. 检查Oracle初始化参数 select * from v$parameter; 3. 检查Oracle的实例状态 sel ...
最新文章
- EXSI 连接硬件USB pass-through
- left join(左联接) left join(左联接) left join(左联接)
- Qt之布局管理——堆栈窗体
- Promise实战AJAX封装
- 命中注定码农路[一. 重新开始]
- React:Conditional Rendering(条件渲染)
- pom文件报错,错误如下:(org.apache.maven.project.MavenProject,org.apache.maven.archiver.MavenArchiveConfigurat
- Android Studio如何去除界面默认标题栏
- [转载]架构指南 : Java1.7+Eclipse luna + Maven 3.2.5 +spring 4.1.4
- 解析ES6箭头函数中的this
- 《丁丁历险记系列之委托》改编自《.NET委托:一个C#睡前故事》
- VScode Remote SSH连接失败
- CKEDITOR富文本编辑器+AJAX+JQUERY+ListView综合应用
- 用计算机制作演示文稿教案博客,《创作演示文稿》教学设计
- Python2—0704笔记
- web前端学习笔记26-事件类型——一般事件、页面事件、表单事件
- 肉价再次上涨 国家宏观调控成效遭受市场考验(转)
- 字节跳动2020春招后端开发工程师笔试复盘
- 国仁老猫:怎么制作抖音100W播放量的作品;首选需要精准定位。
- Design pattern : Singleton