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

Oracle的rowid结构解析的更多相关文章

  1. ORACLE数据库存储结构简介(转)

    首先,oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,oracle是分别进行管理的.   逻辑存储结构:oracle内部的组织和管理数据的方式.  物理存储结构:o ...

  2. 【转载】oracle之rowid详解

    原文URL:http://www.2cto.com/database/201109/104961.html 本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(exte ...

  3. Oracle sql执行计划解析

    Oracle sql执行计划解析 https://blog.csdn.net/xybelieve1990/article/details/50562963 Oracle优化器 Oracle的优化器共有 ...

  4. Oracle 逻辑存储结构

    一.总述 逻辑存储结构是 Oracle 数据库存储结构的核心内容,对 Oracle 数据库的所有操作都会涉及逻辑存储结构.逻辑存储结构是从逻辑的角度分析数据库的组成,是对数据存储结构在逻辑概念上的划分 ...

  5. Oracle SQL的硬解析和软解析

    我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也 ...

  6. iOS沙盒目录结构解析

    iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713     出于安全考虑,iOS系统的沙盒机制规定每个应 ...

  7. H.264码流结构解析

    from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...

  8. rowid结构浅析

    select rowid from dual AAAAB0AABAAAAOhAAA rowid结构如下: 对象号    文件号   块号   行号 XXXXXX    XXX     XXXXXX X ...

  9. oracle 树形表结构查询 排序

    oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SI ...

随机推荐

  1. Spring – ${} is not working in @Value--转载

    原文:http://www.mkyong.com/spring/spring-is-not-working-in-value/ By mkyong | February 4, 2015 | Last ...

  2. mfc非模态对话框

    按照我们的之前的做法,先新建工程. 把基本的内容都添加上. 形成这样一个样子: 并且进行试运行,让程序能够完成加法运算. 值的注意的是,静态文本那里要改一下名字,否则无法将成员变量进行添加. 前期准备 ...

  3. 어느 도시 보유 하 면 사랑 이다(事態が発生すれば、ある都市の恋はしません)【Si les villes un amour】{If have love in a city}

    如果在北京拥有爱情 半夜在簋街喝啤酒 吃小龙虾 在后海的苦情歌声里 搂着你数那四合院的瓦片 如果在上海拥有爱情 去外滩手挽手 吹吹风 坐一下午 去城隍庙尝试各种小吃 嘲笑你嘴角残余的糯米糕 如果在杭州 ...

  4. Verilog-FPGA硬件电路设计之一——if语句优先级(always块中的阻塞赋值生成的组合逻辑电路是按照顺利执行的)

    出处:http://bbs.ednchina.com/BLOG_ARTICLE_3013262.HTM 综合软件:Quartus II 一.有优先级的if语句 if..else if.. else i ...

  5. lrzsz on linux

    Linux Disibutaion:Ubuntu 16.04.1 LTS lrzsz是一款在linux里可代替ftp上传和下载的程序. 1.下载lrzsz源码包 #下载源码包 wget https:/ ...

  6. C# is 强制转换

    在平时开发中,经常遇上强制转换,在这过程中经常遇上null对象转换为值类型,如果不判断的情况下在编译的时候不会出错,但程序一运行就抛出错误.好在C#为我们提供了is ,它判断一个对象如果成立就转换,如 ...

  7. ubuntu系统安装jdk

    1,首先到jdk官网下载jdk. 2,然后再把下载下来的jdk包(jdk-8u20-linux-i586.tar.gz),然后打开shell,进入超级管理员权限,进入刚才下载的目录(cd 目录名),然 ...

  8. powerdesigner 使用的几点问题

    一.powerdesigner 没有DataBase?: powerdesigner 只有在选择物理模型PDM的时候才会出现数据库菜单. 二.PowerDesigner版本控制功能? 1.首先介绍一下 ...

  9. oracle 表空间常用语句

    –查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ...

  10. ubuntu恢复rm -rf误删文件

    使用extundelete工具 sudo apt-get install extundelete 恢复操作命令 首先需要umount或者read only 分区  umount /dev/partit ...