• Oracle的rowid结构解析


    SQL> select rowid,deptno from dept;

    ROWID                  DEPTNO
    ------------------ ----------
    AAAMfNAAEAAAAAQAAA         10
    AAAMfNAAEAAAAAQAAB         20
    AAAMfNAAEAAAAAQAAC         30
    AAAMfNAAEAAAAAQAAD         40

     

    ROWID结构解析
    对象号 文件号 块号 行号
    AAAMfN AAE AAAAAQ AAA


    如何得知这些编号对应的十进制编码值呢(rowid是基于64位编码的18个字符显示的,对象号(6)+文件号(3)+块号(6)+行号(3)),其中
    A-Z    0-25
    a-z    26-51
    0-9    52-61
    +/     62-63
    共64位,

    计算公式:d*(b^p)
    d      表示字符对应的十进制编码值
    b      64
    p      从右至左,每个对象从0开始计数

    比如计算rowid=AAAMfNAAEAAAAAQAAA的块号:

    AAAMfN—对象号    —— 51149
    N – 13*(64^0)=13
    f – 31*(64^1)=1984
    M – 12*(64^2)=49152
    A –  0*(64^3)=0
    A –  0*(64^4)=0
    A –  0*(64^5)=0

    AAE—文件号        —— 4
    E – 4*(64^0)=4
    A – 0*(64^1)=0
    A – 0*(64^2)=0

    AAAAAQ—块号     —— 16
    Q –16*(64^0)=16
    A – 0*(64^1)=0
    A – 0*(64^2)=0
    A – 0*(64^3)=0
    A – 0*(64^4)=0
    A – 0*(64^5)=0

    AAA—行号            —— 0
    A – 0*(64^0)=0
    A – 0*(64^1)=0
    A – 0*(64^2)=0

    SQL> select  dbms_rowid.rowid_object(rowid) objectid--对象号
      2         ,dbms_rowid.rowid_relative_fno(rowid) fileid--文件号
      3         ,dbms_rowid.rowid_block_number(rowid) blockid--块号
      4         ,dbms_rowid.rowid_row_number(rowid) rownums--行号
      5         ,deptno
      6  from dept;

    OBJECTID     FILEID    BLOCKID    ROWNUMS     DEPTNO
    ---------- ---------- ---------- ---------- ----------
         51149          4         16          0         10
         51149          4         16          1         20
         51149          4         16          2         30
         51149          4         16          3         40

     

     

  • 相关阅读:
    配置sonar、jenkins进行持续审查
    maven命令解释
    Maven中-DskipTests和-Dmaven.test.skip=true的区别
    maven之一:maven安装和eclipse集成
    Eclipse安装Maven插件
    IntelliJ IDEA单元测试和代码覆盖率图解
    关于Spring中的<context:annotation-config/>配置
    Java开发之@PostConstruct和@PreConstruct注解
    Java定时任务的三种实现方法
    JAVA之Mybatis基础入门二 -- 新增、更新、删除
  • 原文地址:https://www.cnblogs.com/toughhou/p/3778750.html
Copyright © 2020-2023  润新知