SQL> create table tab01(id integer,val varchar(4));

Table created.

SQL> insert into tab01 values(1,'0001');

1 row created.

SQL> insert into tab01 values(2,'0002');

1 row created.

SQL> insert into tab01 values(3,'0003');

1 row created.

SQL> insert into tab01 values(4,'0004');

1 row created.

SQL> select rowid, tab01.* from tab01;

ROWID                      ID VAL
------------------ ---------- ----
AAAVVLAAEAAAACvAAA          1 0001
AAAVVLAAEAAAACvAAB          2 0002
AAAVVLAAEAAAACvAAC          3 0003
AAAVVLAAEAAAACvAAD          4 0004

SQL>
******************************************************

[oracle@localhost ~]$ cat test.sql
select dbms_rowid.rowid_object(rowid) object_id,
       dbms_rowid.rowid_relative_fno(rowid) file_id,
       dbms_rowid.rowid_block_number(rowid) block_id,
       dbms_rowid.rowid_row_number(rowid) num ,id,val from tab01;
[oracle@localhost ~]$

SQL> @test.sql;

OBJECT_ID    FILE_ID   BLOCK_ID        NUM         ID VAL
---------- ---------- ---------- ---------- ---------- ----
     87371          4        175          0          1 0001
     87371          4        175          1          2 0002
     87371          4        175          2          3 0003
     87371          4        175          3          4 0004

SQL>

[oracle@localhost ~]$ cat test02.sql
select rowid,
     substr(rowid,1,6) "object",
     substr(rowid,7,3) "file",
     substr(rowid,10,6) "block",
     substr(rowid,16,3) "row",  
     id,val from tab01;

[oracle@localhost ~]$

SQL> @test02.sql;

ROWID              object fil block  row         ID VAL
------------------ ------ --- ------ --- ---------- ----
AAAVVLAAEAAAACvAAA AAAVVL AAE AAAACv AAA          1 0001
AAAVVLAAEAAAACvAAB AAAVVL AAE AAAACv AAB          2 0002
AAAVVLAAEAAAACvAAC AAAVVL AAE AAAACv AAC          3 0003
AAAVVLAAEAAAACvAAD AAAVVL AAE AAAACv AAD          4 0004

SQL>

******************************************************

如果,把数据库进行冷备份,然后恢复会如何?

SQL> @test02.sql;

ROWID              object fil block  row         ID VAL
------------------ ------ --- ------ --- ---------- ----
AAAVVLAAEAAAACvAAA AAAVVL AAE AAAACv AAA          1 0001
AAAVVLAAEAAAACvAAB AAAVVL AAE AAAACv AAB          2 0002
AAAVVLAAEAAAACvAAC AAAVVL AAE AAAACv AAC          3 0003
AAAVVLAAEAAAACvAAD AAAVVL AAE AAAACv AAD          4 0004

SQL>

SQL> @test.sql;

OBJECT_ID    FILE_ID   BLOCK_ID        NUM         ID VAL
---------- ---------- ---------- ---------- ---------- ----
     87371          4        175          0          1 0001
     87371          4        175          1          2 0002
     87371          4        175          2          3 0003
     87371          4        175          3          4 0004

SQL>

完全没有变化。

现在重新作表,看导出导入到其他机器上状况会如何:

[oracle@o_target ~]$ sqlplus gao/gao

SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 4 09:42:57 2014

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create table gaotab(id integer,val varchar(3));

Table created.

SQL> insert into gaotab values(4,'004');

1 row created.

SQL> insert into gaotab values(1,'001');

1 row created.

SQL> insert into gaotab values(3,'003');

1 row created.

SQL> insert into gaotab values(2,'002');

1 row created.

SQL> commit;

Commit complete.

SQL>

oracle rowid 研究的更多相关文章

  1. oracle rowid 详解

    oracle rowid详解 今天是2013-09-15,存储在数据库中的每一行数据都有一个地址,oracle使用rowid数据类型在存储地址.rowid有如下类别: 1)physical rowid ...

  2. KingbaseES CTID 与 Oracle ROWID

    熟悉oracle的人都知道ROWID可用于快速的数据访问,KingbaseES 由于自身MVCC机制的原因,ctid 作为 oracle rowid 的替代方案不合适,但currtid 还是基本可以满 ...

  3. ORACLE rowid,file# 和 rfile#

    rowid简介 rowid就是唯一标志记录物理位置的一个id,在oracle 8版本以前,rowid由file#+block#+row#组成,占用6个bytes的空间,10 bit 的 file# , ...

  4. Oracle rowid

    本文讨论的是关于oracle从8i开始引进object的概念后的rowid,即扩展(extended)的rowid:1.rowid的介绍先对rowid有个感官认识:SQL> select ROW ...

  5. oracle rowid 使用

    ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普通的堆表中的rowid是物理rowid,索引组织表 ...

  6. Oracle ROWID具体解释

    1.ROWID定义 ROWID:数据库中行的全局唯一地址 对于数据中的每一行,rowid伪列返回行的地址.rowid值主要包括下面信息: 对象的数据对象编号 该行所在的数据文件里的数据块 该行中数据块 ...

  7. 转载:oracle 启动过程--oracle深入研究

    Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...

  8. ORACLE rowid切分大表

    通过如下sql获取rowid切分范围 ) || dbms_rowid.rowid_create(, DOI, lo_fno, lo_block, ) ) || ) || dbms_rowid.rowi ...

  9. Oracle进阶研究问题收集

    1. buffer busy waits http://www.itpub.net/thread-1801066-1-4.html 2. 深入理解oracle log buffer http://ww ...

随机推荐

  1. es知识点

    版权声明:本文为博主原创文章,未经博主允许不得转载.转载请务必加上原作者:铭毅天下,原文地址:blog.csdn.net/laoyang360 https://blog.csdn.net/wojius ...

  2. 【Oracle】PL/SQL Developer使用技巧(持续更新中)

    1.关键字自动大写 在sql命令窗口中输入SQL语句时,想要关键字自动大写,引人注目该怎么办呢? 一步设置就可以达成了.点击Tools->Preference->Editor,看到截图中这 ...

  3. Asp.net单点登录解决方案

    原文出处:http://www.cnblogs.com/wu-jian 主站:Passport集中验证服务器,DEMO中为:http://www.passport.com/ 分站:http://www ...

  4. UITableVIew与UICollectionView带动画删除cell时崩溃的处理

    UITableVIew与UICollectionView带动画删除cell时崩溃的处理 -会崩溃的原因是因为没有处理好数据源与cell之间的协调关系- 效果: tableView的源码: ModelC ...

  5. Python初学者第二十四天 函数进阶(3)生成器

    24day 1.列表生成式: 循环模式:[变量(加工后的变量) for 变量 in iterable] print([i for i in range(0,101,2)]) [1,4,9,16,25, ...

  6. Entity Framework的基本操作

    一.使用基本的方法进行增删改查             二.使用状态进行增删改查,即使用基类对象进行操作                         三.多个表同时进行添加 添加数据后获取自动增长 ...

  7. 如何确定PHP CLI 的php.ini文件的位置

    当我们安装扩展时,可能需要手动配置php.ini文件,把扩展加进去,所以要确认PHP CLI的php.ini文件的位置.可以运行php --ini查找PHP CLI的ini文件位置,结果类似如下(各个 ...

  8. 【原创】MySQL 生产环境备份还原

    公司需要对生产环境的数据库进行备份,我接下了这份任务. 1. 首先谷歌了以下大家的备份方法 许多都使用到了Xtrabackup这个工具,超大型的公司可能有其他的的备份方法,这个工具对于中小型公司,甚至 ...

  9. 【bzoj 4710】 [Jsoi2011]分特产

    题目 容斥加组合计数 显然答案是 \[\sum_{i=0}^n(-1)^i\binom{n}{i}f_{n-i}\] \(f_i\)表示至多有\(i\)个人没有拿到特产 考虑求\(f\) 发现\(m\ ...

  10. Hive学习之路 (六)Hive SQL之数据类型和存储格式

    一.数据类型 1.基本数据类型 Hive 支持关系型数据中大多数基本数据类型 类型 描述 示例 boolean true/false TRUE tinyint 1字节的有符号整数 -128~127 1 ...