SELECT...FOR UPDATE 语句的语法如下:

SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];

其中:

OF 子句用于指定即将更新的列,即锁定行上的特定列。

WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待。

“使用FOR UPDATE WAIT”子句的优点如下:

1防止无限期地等待被锁定的行;

2允许应用程序中对锁的等待时间进行更多的控制。

3对于交互式应用程序非常有用,因为这些用户不能等待不确定

4 若使用了skip locked,则可以越过锁定的行,不会报告由wait n 引发的‘资源忙’异常报告

示例:

create table t(a varchar2(20),b varchar2(20));

insert into t values('1','1');

insert into t values('2','2');

insert into t values('3','3');

insert into t values('4','4');

现在执行如下操作:

在plsql develope中打开两个sql窗口,

在1窗口中运行sql

select * from t where a='1' for update;

在2窗口中运行sql1

1. select * from t where a='1'; 这一点问题也没有,因为行级锁不会影响纯粹的select语句

再运行sql2

2. select * from t where a='1' for update; 则这一句sql在执行时,永远处于等待状态,除非窗口1中sql被提交或回滚。

如何才能让sql2不等待或等待指定的时间呢? 我们再运行sql3

3. select * from t where a='1' for update nowait; 则在执行此sql时,直接报资源忙的异常。

若执行 select * from t where a='1' for update wait 6; 则在等待6秒后,报 资源忙的异常。

如果我们执行sql4

4. select * from t where a='1' for update nowait skip Locked; 则执行sql时,即不等待,也不报资源忙异常。

现在我们看看执行如下操作将会发生什么呢?

在窗口1中执行:

select * from t where rownum

oracle行锁 查询等待,Oracle 的for update行锁语法相关推荐

  1. oracle之子查询_,Oracle子查询详解

    Oracle子查询详解,根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询, 子查询概念 :当一个查询的结果是另一个查询的条件时,,称之为子查询. 使用子查询注意事项: 子查 ...

  2. oracle 跨分区查询效率,Oracle分区表做跨分区查询

    问:有一张大表,其中按时间字段(TIME_ID)进行表分区(按季度分区),但是如果业务人员做跨季度的大批量数据的查询时,未能走TIME_ID分区索引,导致全表扫描.此种情况该如何处理? 示例解析: 1 ...

  3. oracle标量子查询 外层,Oracle标量子查询

    Oracle标量子查询 ORACLE允许在select子句中包含单行子查询, 使用标量子查询可以有效的改善性能,当使用到外部连接,或者使用到了聚合函数,就可以考虑标量子查询的可能性. 下面来看几个例子 ...

  4. oracle sq语句查询时间,Oracle实现查询时间段的Sql语句两法

    Oracle实现查询时间段的Sql语句两法,相比ORacle要查询时间段的Sql语句还是与Sql Server的Sql语句有区别的,下面举两种方法来说明在ORacle是如何查询时间段的: 第一种方法: ...

  5. oracle删除表不等待,oracle故障处理之删除大表空间hang住

    背景 数据库分区表数据越来越大,需要对过期话的数据进行迁移,以及大的分区表需要进行数据的清理和删除,达到释放磁盘空间的目的. 问题说明 环境:linux 6.X 数据库:oracle 11.2.0.4 ...

  6. oracle中导出查询结果,Oracle SQL 查询结果导出到文本或Excel文件方法

    (MEMO:利用spool缓冲池技术) 具体步骤如下: 1.在Oracle PL/SQL中输入缓冲开始命令,并指定输出的文件路径和文件名 spool d:\output.txt 2.在命令中输入相应的 ...

  7. oracle基本的查询语句,oracle 基本查询语句及实例

    1.查询所有列 select * from 表名: 2.查询表结构 desc 表名: 3.查询指定列 select ename,sal,job from 表名: 4.racle中查看所有表和字段 获取 ...

  8. oracle多表查询while,oracle while的用法示例分享

    当查询中多次用到某一部分时,可以用Oracle with语句创建一个公共临时表.因为子查询在内存临时表中,避免了重复解析,所以执行效率会提高不少.临时表在一次查询结束自动清除. 一般语法格式: 复制代 ...

  9. oracle存储过程导出查询结果,ORACLE如何实现函数、包、存储过程的导入和导出

    建 议可以用常规的检查,检查一下:数据字典信息/exp 导出结构检查 1.检查 SELECT * FROM ALL_SOURCE t WHERE T.OWNER = '要查询用户' AND t.TYP ...

最新文章

  1. mysql数字转换中文版_MYSQL字符数字转换
  2. cpu的内容——cu的功能。操作命令的分析 || 微程序设计思想
  3. MPL,MIL和MCL
  4. php 函数分类,PHP Array 函数
  5. P6085-[JSOI2013]吃货JYY【状压dp,欧拉回路】
  6. LeetCode 1455. 检查单词是否为句中其他单词的前缀
  7. qt中颜色对话框弹出时应用程序输出栏出现QWindowsWindow::setGeometry: Unable to set geometry 180x30+345+311 (frame: 202x8
  8. MyBatis学习总结(27)——Mybatis-Plus使用小技巧
  9. python计算2的20次方_Python学习二运算符
  10. arcgis数据量大显示慢_优化MapGIS地图显示速度我的七个方法
  11. BUUCTF Misc Page2-6部分题目
  12. GitHub项目推荐
  13. 新视野大学英语(第三版) 读写教程4 课后答案
  14. es 安装拼音分词器 以及使用
  15. html弹性布局什么意思,弹性布局display:flex是什么意思
  16. 2024 递归Eason
  17. 内存屏障(Memory Barrier)(一)什么是写屏障?
  18. password unchanged Authentication token manipulation error
  19. 下载及安装NCCL教程
  20. Linux进阶 | 实现负载均衡高可用(LB+HA)Web服务

热门文章

  1. java 坦克重叠_【Java】我所知道坦克大战(单机版)之画出坦克的实心圆、让圆动起来、双缓冲解决闪烁问题...
  2. python numpy中对ndarry按照index(位置下标)增删改查
  3. oxm java_使用JAXB2.0实现OXM
  4. jenkins 用户授权
  5. Unity搭建简单的图片服务器
  6. 9.22 keep studying
  7. Python网络爬虫与信息提取[request库的应用](单元一)
  8. WPF下递归生成树形数据绑定到TreeView上
  9. 漫谈惯性、视觉暂留、潜意识、混合动力发动机、先入为主 - 纯粹的无厘头?...
  10. LeetCode OJ Symmetric Tree 判断是否为对称树(AC代码)