HelloDBA [English]
搜索Internet 搜索 HelloDBABA
  Oracle技术站。email: fuyuncat@gmail.com  MSN: fuyuncat@hotmail.com   acoug  acoug 

TIPS: OEM锁视图中ROWID的转换

[English]

作者: fuyuncat

来源: www.HelloDBA.com

日期: 2009-08-24 06:45:07

分享到  新浪微博 腾讯微博 人人网 i贴吧 开心网 豆瓣 淘宝 推特 Facebook GMail Blogger Orkut Google Bookmarks

OEMDatabase Locks视图,我们可以监控到数据库上的锁,对于TX锁,视图会显示锁对应的ROWID,如以下格式。

0010CDBE.0007.007B

但是这个ROWID并不是我们所熟悉1864进制的格式。实际上,如果你熟悉Oracle 7及之前版本的话,就可以认出这是Oracle7ROWID的格式,其组成为(数据为16进制):

<BLOCK NUMBER>.<ROW SEQUENCE>.<FILE ID>

而在锁的视图中,已经显示了锁所在的对象。这样,构成ROWID所需要的4个要素都可以得到:OBJECT ID, FILE ID, BLOCK NUMBER, ROW SEQUENCE.

我们就可以用函数构造出ROWID来了。如我们之前的例子:

 

SQL代码
  1. SQL> select object_id from dba_objects where object_name = 'CS2_BL_SHMT_LEG' and owner='CS2_PARTY_OWNER';  
  2.   
  3.  OBJECT_ID  
  4. ----------  
  5.      65063  
  6.   
  7. SQL> select * from CS2_BL_SHMT_LEG where rowid = (select dbms_rowid.rowid_create(1,65063,123,1096653,14) from dual);  
  8.   
  9. … …  
  10.   
  11. rows selected  

--- The End ---

 

Top

Copyright ©2005,HelloDBA.Com 保留一切权利

申明
by fuyuncat