• 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

     

     

  • 相关阅读:
    千峰公开课徐老师讲解前端前沿技术总结
    网站被k到可以使用关键词搜索到首页优化总结
    SEO基础内容
    react项目后台及上线步骤
    超好用的图片压缩工具,推荐给你
    属性title样式自定义
    Vue.js_devtools_5.1.0.zip【需要的可自行下载】
    js异步执行 按需加载 三种方式
    Web安全之跨站脚本攻击(XSS)
    操作数组不要只会for循环
  • 原文地址:https://www.cnblogs.com/toughhou/p/3778750.html
Copyright © 2020-2023  润新知