CREATE OR REPLACE PROCEDURE SOLVE_LOCK

AS

V_SQL VARCHAR2(3000);
 CUR_LOCK SYS_REFCURSOR;

TYPE TP_LOCK IS RECORD(
 V_SID NUMBER,
 V_TYPE VARCHAR2(10),
 V_ID1 NUMBER,
 V_ID2 NUMBER,
 V_LMODE VARCHAR2(20),
 V_REQUEST  NUMBER,
 V_LOCK_TIME NUMBER,
 V_BLOCK  NUMBER );

RECORDS_LOCK TP_LOCK;

BEGIN
   V_SQL:='SELECT SID,TYPE,ID1,ID2, LMODE  ,REQUEST,CTIME,BLOCK FROM V$LOCK WHERE SID IN (133,9)' ;

OPEN CUR_LOCK FOR V_SQL;
 
 LOOP
   
   FETCH CUR_LOCK INTO RECORDS_LOCK;
   
          IF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 0 THEN
            RECORDS_LOCK.V_LMODE :='NONE';
      ELSIF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 1 THEN
        RECORDS_LOCK.V_LMODE :='NULL';
      ELSIF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 2 THEN
        RECORDS_LOCK.V_LMODE :='ROW SHARE';
      ELSIF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 3 THEN
        RECORDS_LOCK.V_LMODE :='ROW EXCLUSIVE';
      ELSIF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 4 THEN
        RECORDS_LOCK.V_LMODE :='SHARE';
      ELSIF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 5 THEN
        RECORDS_LOCK.V_LMODE :='SHARE ROW EXCLUSIVE';
      ELSIF TO_NUMBER(RECORDS_LOCK.V_LMODE) = 6 THEN
      RECORDS_LOCK.V_LMODE :='EXCLUSIVE';
     END IF;
       
   EXIT WHEN CUR_LOCK%NOTFOUND;

IF RECORDS_LOCK.V_REQUEST <>0  THEN
  DBMS_OUTPUT.PUT_LINE(RECORDS_LOCK.V_SID||' is request a lock ,lock_mode  is '||RECORDS_LOCK.V_LMODE||' and beging locked '|| RECORDS_LOCK.V_LOCK_TIME);
END IF;

IF RECORDS_LOCK.V_BLOCK  <>0 THEN
  DBMS_OUTPUT.put_line(RECORDS_LOCK.V_SID||' is make a lock , lock_mode is '||RECORDS_LOCK.V_LMODE);
  END IF;
   
  -- DBMS_OUTPUT.put_line(RECORDS_LOCK.V_SID);

END LOOP;
   CLOSE CUR_LOCK;

END SOLVE_LOCK;

抓取锁的sql语句-第一次修改的更多相关文章

  1. 抓取锁的sql语句-第七次修改

    最近闲来没事,把之前写的那个抓取锁的存储过程重新修改.优化了一下,呵呵 create or replace procedure solve_lock_061203_wanjie(v_msg out v ...

  2. 抓取锁的sql语句-第六次修改

    增加异常处理 CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句V_SQL02 ...

  3. 抓取锁的sql语句-第五次修改

    CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句V_SQL02 VARCHA ...

  4. 抓取锁的sql语句-第四次修改

    --完成情况   变量V_BLOCKING_SID 用来动态抓取 产生锁的会话id,输出参数没有任何问题,但是执行报错  标识符无效! CREATE OR REPLACE PROCEDURE SOLV ...

  5. 抓取锁的sql语句-第三次修改

    CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句CUR_LOCK SYS_R ...

  6. 抓取锁的sql语句-第二次修改

    CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000);  --定义 v_sql 接受抓取锁的sql语句 CUR_LOCK SYS ...

  7. tcpdump来抓取执行的sql语句

    # tcpdump -n -nn -tttt -i eth1 -s 65535 'port 3306' -w tcpdump_mysql.ret -C 100 一个TCP包中包含多个mysql协议包, ...

  8. 使用sql语句创建修改SQL Server标识列(即自动增长列)

    一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统 ...

  9. Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句(原创)

    Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句 查找活动的事务以及活动事务关联的会话信息 select s.sid 会话ID, s.serial# 会话序列号, s.usernam ...

随机推荐

  1. js弹出新窗口居中

    方式1: <script language="javascript"> var newUrl = <%=newUrl % > //window.locati ...

  2. K Smallest Sums

    uva11997:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  3. Babelfish

    Time Limit: 1000MS Memory limit: 65536K 题目描述You have just moved from Waterloo to a big city. The peo ...

  4. 如何给div加一个边框border样式

    如何给div加一个边框样式? 对div盒子加一个边框样式很简单只需要使用border板块样式即可. 一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px da ...

  5. Function语义学之member function

    之前我们讲过编译器会对 nonmember functions 进行怎样的扩充和该写,今天我们来讲一下 member functions 函数调用方式 一.Nonstatic Member Funct ...

  6. vijos1082丛林探险

    P1082丛林探险 描述 东非大裂谷中有一片神秘的丛林,是全世界探险家的乐园,著名黄皮肤探险家BB一直想去试试.正好我国科学家2005年4月将首次对东非大裂谷进行科考,BB决定随科考队去神秘丛林探险. ...

  7. Linux系统下UDP发送和接收广播消息小例子

    // 发送端 #include <iostream> #include <stdio.h> #include <sys/socket.h> #include < ...

  8. JavaScript中的声明提升

    JavaScript中变量或者函数的声明会被提升(赋值语句不会被提升)到当前函数主体的顶部,不管这个声明是否出现在不可到达的地方. var test = 1; function f() { if(!t ...

  9. zookeeper 删除snapshot和transaction log的源码解读

    转载请注明源地址http://www.cnblogs.com/dongxiao-yang/p/4910059.html zookeeper具有自动清除快照日志和事务日志的工能,可以在配置文件设置aut ...

  10. winform timespan 两个时间的间隔(差) 分类: WinForm 2014-04-15 10:14 419人阅读 评论(0) 收藏

    TimeSpan 结构  表示一个时间间隔. 先举一个小例子:(计算两个日期相差的天数) 代码如下: DateTime dt = DateTime.Now.ToShortDateString(yyyy ...