2019独角兽企业重金招聘Python工程师标准>>>

ORACLE锁的类型 
    在正常情况下,ORACLE会自动锁住需要加锁的资源以保护数据, 这种锁是隐含的,叫隐含锁。然而,在一些条件下,这些自动的锁在 实际应用时并不能满足需要,必须人工加一些锁。这些人工加的锁叫显示锁。 
    下面指明了会产生隐含锁的SQL语句: 
      INSERT; 
      UPDATE; 
      DELETE; 
      DDL/DCL语句。 
    下面指明了会产生显示锁的SQL语句:

SELECT FOR UPDATE; LOCK TABLE IN XXX MODE。

在同时对表进行以上操作的时候,就有可能会产生锁 减少并发事务处理吧,处理完成之后尽快commit吧

LOCK TABLE 使用:
说明 

此语句用于防止其它并发事务访问或修改表。

语法 

LOCK TABLE table-name
[ WITH HOLD ]
IN { SHARE | EXCLUSIVE } MODE

参数

table-name    表必须是基表,而不是视图。因为临时表数据是当前连接的本地数据,所以锁定全局临时表或局部临时表都无效。

WITH HOLD 子句    如果指定该子句,锁一直保持到连接结束时。如果没有指定该子句,则提交或回退当前事务时将释放锁。

SHARE 模式    禁止其它事务修改表,但允许它们读取表。在该模式下,只要没有其它的事务锁定所修改的行,就可以间接地或显式地使用 LOCK TABLE 更改表中的数据。

EXCLUSIVE 模式    禁止其它事务访问表。任何其它事务都不能对表执行查询、任何更新或任何其它操作。如果用 LOCK TABLE t IN EXCLUSIVE MODE 排它性地锁定表 t,则服务器的缺省行为是不获取 t 的行锁定。将 SUBSUME_ROW_LOCKS 选项设置为 OFF 可以禁用此行为。

用法 

LOCK TABLE 语句允许直接控制表级并发,与当前的隔离级别无关。虽然事务的隔离级别通常控制当前事务执行请求时设置的锁的种类,但 LOCK TABLE 语句允许更显式地控制表行的锁定。

LOCK TABLE 以 SHARE 模式放置的锁为幻像和防幻像锁,sa_locks 过程将它们显示为 PT 和 AT。

权限

若要以 SHARE 模式锁定表,需要 SELECT 权限。

若要以 EXCLUSIVE 模式锁定表,必须是表所有者或者有 DBA 权限。

副作用

需要访问锁定表的其它事务可能被延迟或阻塞。

示例 

下面的语句禁止其它事务在当前事务期间修改 customer 表:

LOCK TABLE customer
IN SHARE MODE

转载于:https://my.oschina.net/u/2332532/blog/1620611

oracle-手动锁表相关推荐

  1. oracle有一百个人围一圈报数,案例:Oracle创建表时报session超过最大值 ORA-00018 证明递归ses...

    天萃荷净 创建表时报session超过最大值 证明递归session存在并不在v$session中显示 我们在数据库的使用过程中,有时候会遇到类似情况,我会话是登录的,但是我进行某种操作,缺报sess ...

  2. oracle主从关系表查询,Oracle 主从表联合查询解决方法

    Oracle 主从表联合查询 表A id   type   name 1    E      AA 2    F 表B id   Aid    name 1    2      BB 2    2   ...

  3. python使用pandas基于时间条件查询多个oracle数据表

    python使用pandas基于时间条件查询多个oracle数据表 目录 python使用pandas基于时间条件查询多个orcale数据表 #orcale数据连接

  4. Oracle数据库表导出和导入csv文件操作

    Oracle数据库表导出和导入csv文件操作 数据库是Oracle 9i 1.导出csv文件 这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中 ...

  5. 神秘的 ORACLE DUAL表

    神秘的 ORACLE DUAL表 DUAL ? 有什么神秘的? 当你想得到ORACLE系统时间, 简简单单敲一行SQL 不就得了吗? 故弄玄虚-. SQL> select sysdate fro ...

  6. Oracle数据库表设计时的注意事项

    Oracle数据库表设计时的注意事项  表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据 ...

  7. oracle外部表ora29913,从外部表中选择sqlplus错误:ORA-29913:执行ODCIEXTTABLEOPEN标注时出错...

    我已经建立了一个简单的Oracle外部表测试,我(与DBA和Unix管理员一起)无法工作. 以下内容基于Oracle的External Tables Concepts.我们使用的数据库是11g. 这是 ...

  8. Oracle锁表 行级锁 表级锁 行级锁

    2019独角兽企业重金招聘Python工程师标准>>> Oracle锁表  行级锁  表级锁 ---- 行被排他锁定 ----在某行的锁被释放之前,其他用户不能修改此行       ...

  9. oracle多表关联查询报表,oracle多表关联查询和子查询

    oracle多表关联查询和子查询 一.多表关联查询 例子: sql> create table student1 ( sid varchar(3), sname varchar(6), sage ...

  10. oracle如何查看表的字段是否存在,Oracle删除表、字段之前判断表、字段是否存在...

    Oracle删除表.字段之前判断表.字段是否存在 在Oracle中若删除一个不存在的表,如 "DROP TABLE tableName",则会提示: ORA-00942:表或视图不 ...

最新文章

  1. 有哪些高效看文献的方法?
  2. 在O(1)时间删除链表节点
  3. 改动下ICTCLAS4J 0.9.1 提供了分词速度
  4. python中的线程
  5. Mysql升序排序对为空的排在最后面is null
  6. C#窗口间传递消息(聊天记录)
  7. 中国女性灭菌装置行业市场供需与战略研究报告
  8. 镭神激光雷达对于Autoware的适配
  9. 汉生机器人_2019高工机器人核心零部件会议
  10. JAVA贪吃蛇游戏1.0版本
  11. 编译LTIB遇到的问题解决办法
  12. LINUX下截图快捷方式
  13. Apache安装apr和apr-util作用
  14. 核心交换机、汇聚交换机、接入交换机功能详解
  15. 每日一问。2015.1.8
  16. 电商运营到底做什么?说出来你也不信。
  17. hostapd.conf 解析
  18. 关于Android ViewPager禁止滑动
  19. TD源链:让技术回归本质
  20. c++ heap (堆)

热门文章

  1. Atitit api标准化法 it法学之 目录 1. 永远的痛点:接口与协议的标准化 1 2. 标准化优点 1 3. 标准化组织 2 3.1. 应当处理标准化委员会 2 3.2. 标准化提案与表决
  2. atitit 组织机构性质与名称表.docx
  3. Atitit 项目文档规范化与必备文档与推荐文档列表
  4. atitit  验证码理论与概览与 验证码规范 解决方案.docx
  5. paip. erlang语法C++语法对比attilax总结
  6. paip.DEVSUIT WEB .NET ASPX网站打开慢的原因
  7. HIBERNATE调试工具JBOSS TOOLS
  8. 范华专栏 | 挪威主权基金2018年报解读
  9. Rust: 在子线程启动子线程
  10. 阿里云块存储快照服务背后的技术原理