RAC查询数据库被锁住的行

declare
  v_rowid varchar2(100);
begin
  for i in (select c.data_object_id v_ob,
                   c.object_name    v_obn,
                   row_wait_file#   v_fno,
                   row_wait_block#  v_bk,
                   row_wait_row#    v_row,
                   username         v_user
              from gv$session a, Gv$lock b, dba_objects c
             where a.sid = b.sid
               and block > 0
               and b.type in ('TX', 'TM')
               and a.row_wait_obj# = c.object_id) loop
    select dbms_rowid.rowid_create(1, i.v_ob, i.v_fno, i.v_bk, i.v_row)
      into v_rowid
      from dual;
    dbms_output.put_line('select * from ' || i.v_user || '.' || i.v_obn ||
                         ' where  rowid=''' || v_rowid || ''';');
  end loop;
end;
实验:
 在一个会话窗口中    update a set id=2 where id=1;
  在另外一个会话窗口  update a set id=2 where id=1;
可以通过构造ROWID查找到这行数据
 打开serveroutput 
 
 执行上面匿名块  输出-----   
  select * from SCOTT.A where  rowid='AAASIFAAEAAAACvAAG';

PL/SQL procedure successfully completed.

SQL> select * from SCOTT.A where  rowid='AAASIFAAEAAAACvAAG';

	ID
----------
	 1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值