Oraclerowid详解.docVIP

  • 35
  • 0
  • 约9.32千字
  • 约 10页
  • 2017-02-28 发布于湖北
  • 举报
Oraclerowid详解

1.?????? rowid的介绍 先对rowid有个感官认识: SQL select ROWID from Bruce_test where rownum2; ROWID ------------------ ---------- AAABnlAAFAAAAAPAAA ROWID的格式如下: 数据对象编号??????? 文件编号??????? 块编号?????????? 行编号 OOOOOO???????????? FFF??????????????? BBBBBB RRR 我们可以看出,从上面的rowid可以得知: AAABnl 是数据对象编号 AAF是相关文件编号 AAAAAP是块编号 AAA 是行编号 怎么依据这些编号得到具体的十进制的编码值呢,这是经常遇到的问题。这里需要明白rowid的是基于64位编码的18个字符显示(数据对象编号(6) +文件编号(3) +块编号(6)+?????? 行编号(3)=18位),其中 A-Z == 0 - 25 (26) a-z == 26 - 51 (26) 0-9 == 52 - 61 (10) +/ == 62 - 63 (2) 共64位,明白这个后,就可以计算出10进制的编码值,计算公式如下: d * (b ^ p) 其中:b就是基数,这里就是64,p就是从右到左,已0开始的位置数 比如:上面的例子 文件号AAF,具体的计算应该是:

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档