绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
深入解析Oracle rowid结构及os层rowid生成工具分享
2020-03-23 14:24:33

一、概念介绍



         Oracle数据库使用rowid标识行。在数据库内部,rowid是一个保存数据库访问一行所需信息的结构。rowid不是物理地存储在数据库中,而是从存储数据的文件和块中计算出来。

 

二、rowid编码规则



extended rowid包括一个数据对象号。这个rowid类型对每一行的物理地址使用base 64编码。编码字符是A-Z、A-Z、0-9、+和/。

1 rowid编码表

 

 

三、rowid格式



 

selectdbms_rowid.ROWID_CREATE(1,88063,4, 539,0) c_rowid from dual;

 

C_ROWID

------------------

AAAVf/   AAE  AAAAIb  AAA

 


2 ROWIDFormat

 

extended rowid以四部分显示以rowid = OOOOOOFFFBBBBBBRRR为例:

OOOOOO: data object number;

FFF: data file number;

BBBBBB: data block number;

RRR: row number

 

四、手工解析ROWID


select dbms_rowid.ROWID_CREATE(1,88063,4, 539,0) c_rowid from dual;

 

C_ROWID

------------------

AAAVf/   AAE  AAAAIb  AAA

手工解析ROWID

 

五、OS层工具生成ROWID

 


mkdir -p /home/oracle/orastar

mv ora_crowid /home/oracle/orastar

export PATH=/home/oracle/orastar/:$PATH

4 ora_crowid测试


工具下载:请关注公众号,回复“rowid”。

 

六、说明



1、以上内容为个人多次测试结果,由于个人原因,如有分析不足之处还请见谅及指正。

2、文章涉及内容,请勿生产环境模拟。

 


昨日种种,皆成今我,切莫思量,更莫哀,从今往后,怎么收获,怎么栽。——胡适



感谢您的阅读,如果您觉得有所收获,也欢迎把文章分享给您的朋友。





分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据库技术笔记
创建时间:2020-03-03 00:45:30
oracle技术分享
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • orastar
    栈主

小栈成员

查看更多
  • xzh1980
  • 飘絮絮絮丶
  • Leila
  • gaokeke123
戳我,来吐槽~