Oracle的rowid结构解析
SQL> select rowid,deptno from dept;
ROWID DEPTNO
------------------ ----------
AAAMfNAAEAAAAAQAAA 10
AAAMfNAAEAAAAAQAAB 20
AAAMfNAAEAAAAAQAAC 30
AAAMfNAAEAAAAAQAAD 40
| 对象号 | 文件号 | 块号 | 行号 |
| 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结构解析的更多相关文章
- ORACLE数据库存储结构简介(转)
首先,oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,oracle是分别进行管理的. 逻辑存储结构:oracle内部的组织和管理数据的方式. 物理存储结构:o ...
- 【转载】oracle之rowid详解
原文URL:http://www.2cto.com/database/201109/104961.html 本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(exte ...
- Oracle sql执行计划解析
Oracle sql执行计划解析 https://blog.csdn.net/xybelieve1990/article/details/50562963 Oracle优化器 Oracle的优化器共有 ...
- Oracle 逻辑存储结构
一.总述 逻辑存储结构是 Oracle 数据库存储结构的核心内容,对 Oracle 数据库的所有操作都会涉及逻辑存储结构.逻辑存储结构是从逻辑的角度分析数据库的组成,是对数据存储结构在逻辑概念上的划分 ...
- Oracle SQL的硬解析和软解析
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.在Oracle中存在两种类型的SQL语句,一类为 DDL语句(数据定义语言),他们是从来不会共享使用的,也 ...
- iOS沙盒目录结构解析
iOS沙盒目录结构解析 原文地址:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应 ...
- H.264码流结构解析
from:http://wenku.baidu.com/link?url=hYQHJcAWUIS-8C7nSBbf-8lGagYGXKb5msVwQKWyXFAcPLU5gR4BKOVLrFOw4bX ...
- rowid结构浅析
select rowid from dual AAAAB0AABAAAAOhAAA rowid结构如下: 对象号 文件号 块号 行号 XXXXXX XXX XXXXXX X ...
- oracle 树形表结构查询 排序
oracle 树形表结构排序 select * from Table start with parentid is null connect by prior id=parentid order SI ...
随机推荐
- java_泛型(构造器)部分实例
package ming; import java.util.ArrayList; import java.util.Collection; import java.util.List; class ...
- word-wrap,word-break,text-wrap的区别
今晚看到了无双老师关于word-wrap,word-break区别的讲解 http://www.cnblogs.com/2050/archive/2012/08/10/2632256.html 受益 ...
- 通过代码创建label 计算最佳尺寸 让其自适应文本高度或宽度
通过xib创建label 让label随着文本内容的变化而动态改变尺寸比较简单 只要不固定死尺寸就可以了 但是通过代码创建的话我们需要给label设置一个frame 否则label默认是没有尺 ...
- C语言创建并使用lib
本文试图以比较简洁的方式创建lib: 只求能够把lib用起来,并不会加上[很多但必须的东西,比如我们之前说过的#ifndef #define 和#endif] 打开vs 创建一个新的项目: 点击确定 ...
- nginx笔记---http配置
1.三个逻辑区段 http:该区段嵌入配置文件的根部,在这个区段中允许定义指令和嵌入http相关模块.他包含了一个或多个server区段,他也能够使全局配置生效. server:这个区段建立了一个站点 ...
- Fedora 19修改主机名
Distribution为Fedora 19 方式一(重启后失效,需root权限): hostname 新主机名 [root@promote hadoop]# hostname promote.cac ...
- python2 dir(list)
>>> dir(list) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__del ...
- VIM 选择多行,复制粘贴
进入VIM,比如编辑一个文件, 1.进行选择,是V模式,按V键,进入该模式,然后选择要复制的行 2. 选择好之后,再按y键,即使复制到了 3.然后光标进入要复制的行之后,按一下P键,就粘贴了,oh y ...
- 使用jsonp跨域请求
一.异步对象,不能实现跨域请求 在站点A中访问站点B的数据: 站点A代码: window.onload = function () { document.getElementById("bt ...
- Android线控的使用
实现方式一:只能在程序为前台时监控 在Activity中即可监听 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { Log ...