锁定类型
               行级锁
               表级锁
行级锁
         ---- 行被排他锁定
         ----在某行的锁被释放之前,其他用户不能修改此行
         ----使用 commit 或 rollback 命令释放锁
         ----Oracle 通过使用 INSERT、UPDATE 和 SELECT…FOR UPDATE 语句自动获取行级锁
SELECT…FOR UPDATE 子句
―在表的一行或多行上放置排他锁
―用于防止其他用户更新该行
―可以执行除更新之外的其他操作
―select * from goods where gid=1001
―for update of gname;
―只有该用户提交事务,其他用户才能够更新gname
FOR UPDATE WAIT 子句 
―Oracle9i 中的新增功能 
―防止无限期地等待锁定的行 
―等待间隔必须指定为数值文字 
―等待间隔不能是表达式、赋值变量或 PL/SQL
变量 
―select * from goods where gid=1001 for update of gname wait 3 
―等待用户释放更新锁的时间为3秒,否则超时。
表级锁
―保护表的数据
―在多个用户同时访问数据时确保数据的完整性
―可以设置为三种模式:共享、共享更新和 排他
          语法:lock table<table_name>in<mode>;
共享锁
―锁定表
―仅允许其他用户执行查询操作
―不能插入、更新和删除
―多个用户可以同时在同一表中放置此锁
―lock table table_name
―in share mode [nowait];
― rollback 和commit 命令释放锁
― nowait 关键字告诉其他用户不用等待
共享更新锁
―锁定要被更新的行
―允许其他用户同时查询、插入、更新未被锁定的行
―在 SELECT 语句中使用“FOR UPDATE”子句,可以强制使用共享更新锁
―允许多个用户同时锁定表的不同行
加锁的两种方法
        1        lock table tab_name in share update mode;
        2         select column1,column2
            from goods
            where goods
            where gid=1001
            for update of column1,column2
排他锁
―与其他两种锁相比,排他锁是限制性最强的表锁
―仅允许其他用户查询数据
―不允许执行插入、删除和更新操作
―在同一时间仅允许一位用户在表上放置排他锁
―共享锁与此相反
         lock table tab_name in exclusive mode;
         lock table<表名>[<表名>]...
                   in share mode [nowait]
   
         lock table< 表名>[<表名>]...
         in exclusive mode [nowait]
         lock table<表名>[<表名>]...
         in share update mode[nowait]

Oracle锁表(转载)的更多相关文章

  1. oracle锁表问题解决方法

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp52 Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程 ...

  2. oracle锁表

    一.锁表的处理 Oracle锁表比较简单,查询锁表的session杀掉就可以了. 1.以下几个为相关表 SELECT * FROM V$LOCK; SELECT * FROM V$SQLAREA; S ...

  3. Oracle锁表查询和解锁方法

    数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remov ...

  4. oracle锁表查询

    ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查 ...

  5. oracle 锁表问题

    oracle执行表数据更新的时候,会遇到锁表问题,比方说,会遇到这样的问题,主要原因是这张表被其他人占用,修改数据没有提交.oracle为了避免脏数据的产生,在其安全机制下,锁住该表. 执行如下操作, ...

  6. 查询Oracle锁表和解决方法

    Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容.(1)锁表查询的代码有以下的形式:select count( ...

  7. Oracle锁表与解锁

    查看锁表语句:方法1:    select sess.sid,           sess.serial#,           lo.oracle_username,           lo.o ...

  8. oracle 锁表的处理。

    最近系统每天经常锁表,进程杀死后,很快再次锁住这个表. (一)先贴出现场处理死锁的步骤. 另外:有时候通过PL/SQL执行kill session可能仍然无法解锁,此时需要登陆到Oracle服务器将进 ...

  9. oracle锁表查询,资源占用,连接会话,低效SQL等性能检查

    查询oracle用户名,机器名,锁表对象 select l.session_id sid, s.serial#, l.locked_mode, l.oracle_username, l.os_user ...

随机推荐

  1. My SQL InnoDB 1217 - Cannot delete or update a parent row:aforeign key constraint fals

    InnoDB 允许有外键  MyISAM 不允许有外键 InnoDB修改成MyISAM 证明有外键 一张表如果有其他表的外键关联的是它  它也不能是MyISAM 来自为知笔记(Wiz)

  2. C#之你懂得的序列化/反序列化

    前言:写此文章一方面是为了巩固对序列化的认识,另一方面是因为本人最近在面试,面试中被问到“为什么要序列化”.虽然一直在使用,自己也反复的提到序列化,可至于说为什么要序列化,还真的没想过,所以本文就这样 ...

  3. ARP:地址解析协议

    ARP是地址解析协议,简单语言解释一下工作原理.1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系.2:当源主机要发送数据时,首先检查ARP列表中 ...

  4. Action的执行

    异步Action的定义 两种异步Action方法的定义 xxxAsync/xxxCompleted 这种形式的异步只能定义在实现了AsyncController的Controller中.针对Task的 ...

  5. Android init.rc解析【转】

    转自:http://www.linuxidc.com/Linux/2014-10/108438.htm 本文主要来自$Android_SOURCE/system/init/readme.txt的翻译. ...

  6. GitHub的使用(上)—— 创建和更新

    推荐一个属于自己的代码控制工具(或者是叫代码托管工具)——GitHub. 提起代码控制工具,很容易想到的就是CVS,SVN.这也是开发团队常用的.但如果想管理只属于自己的代码呢?那它们就不太合适了—— ...

  7. leetcode:Search for a Range(数组,二分查找)

    Given a sorted array of integers, find the starting and ending position of a given target value. You ...

  8. C++关键字 inline

    在C&C++中 一.inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义. 表达式形式的宏定义一例: #define ExpressionName(Va ...

  9. 《OD学HBase》20160820

    一.案例 微博: 微博内容: 关注用户和粉丝用户: 添加或移除关注用户 查看关注用户的微博内容 微博数据存储: 响应时间 秒级 无延迟 (1)mysql分布式 (2)hbase数据库 使用HBase数 ...

  10. JS获取系统的指定定年月日

    /** * 获取系统当前时间 */ function getNowYearMouth(){ var date=new Date; var nowYearMouth=date.getMonth()+1; ...