rowid:select t.*,t.rowid from test t; -- AACeJKAAIAAAA4XAAA

注:有个很二需求,通过一个存储过程插入的数据必须是放在一块的,不能分散开存储,考虑用到使用insert /*+append*/ into插入数据,需要了解一下数据的存储原理

AACeJK                   AAI                AAAA4X           AAA

数据对象编号(6位)文件编号(3位) 块编号(6位)    行序号(3位)

declare

v_rowid         rowid;

v_rowid_type    number;

v_object_number number;

v_relative_fno  number;

v_block_number  number;

v_row_number    number;

begin

--得到输入变量v_rowid,把它传递给dbms_rowid.rowid_info过程

dbms_rowid.rowid_info('AACeJKAAIAAAA4XAAA',

v_rowid_type,

v_object_number,

v_relative_fno,

v_block_number,

v_row_number);

dbms_output.put_line('row id is: ' || v_rowid);

dbms_output.put_line('rowid type is: ' || v_rowid_type || ' -- ' ||

v_object_number || ' -- ' || v_relative_fno ||

' -- ' || v_block_number || ' -- ' || v_row_number); --此处测试仅显示1-2个输出参数,其它同理

end;

select dbms_rowid.rowid_relative_fno(row_id => 'AACeJKAAIAAAA4XAAA')

from dual

select * from v$datafile;

--数据对象编号

select * from user_objects t where t.data_OBJECT_ID = '647754';

--文件编号

select * from v$datafile where file# = 8;

rowid本身是一种数据类型

错误:

select t.*,t.rowid from test t where t.rowid ='AAA111';

正确:

select t.*,t.rowid from test t where ROWIDTOCHAR(t.rowid)='AAA111';

ROWIDTOCHAR(t.rowid):将rowid转化成string

CHARTOROWID('rowid_string') :将string转换成ROWID

select CHARTOROWID('AAAAB0AABAAAAOhAAA') from dual;

rowid类型:

Extended rowid:使用表空间相关的数据块地址,8i及以上使用这种格式

Restricted rowid:使用数据库范围的数据块地址,oracle 7或更早前的版本使用

rowid的更多相关文章

  1. 使用rowid抽取数据方法以及大数据量游标卡住的应对

    平时工作的时候,经常会遇到这种事情,从一个大表A中,抽取字段a在一个相对较小B的表的数据,比如,从一个详单表中,抽取几万个用户号码的话单出来.这种时候,一般来说, 做关联查询: create tabl ...

  2. 【转】oracle中rowid的用法 (全面)

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

  3. rownum和rowid伪列

    select row employee_id,last name,salary from employees; select row employee_id,last name,salary from ...

  4. TOAD和PLSQL 默认日期显示、rowid显示、TNSNAME的修改

    先说下要解决的问题: select rowid,acct_id,state_date from acct; 修改后,1)sql指明rowid,可以显示出来 2)时间格式显示为YYYYMMDD HH24 ...

  5. ROWID伪列

    ROWID伪列概念: 在数据表中每一行所保存的记录,oracle会为每条记录分配一个唯一的地址编号,这个编号就是通过ROWID表示的. 所有的数据都利用ROWID进行定位. 观察rowid的存在 SQ ...

  6. Oracle中rownum和rowid的理解(转)

    本文转自地址http://www.linuxidc.com/Linux/2012-04/58300.htm rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每 ...

  7. Oracle中的rownum和rowid

    http://blog.csdn.net/mitedu/article/details/3584399  rownum http://blog.csdn.net/mitedu/article/deta ...

  8. 关于oracle的rowid

    oracle数据库中表的每一行(元组)均有一个rowid,它是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置. ROWID可以分为物理rowid和逻辑rowid两种.普 ...

  9. ora-01445:无法从不带保留关键字的表的连接视图中选择ROWID或采样

    系统要创建一个物化试图,用到很多张表,执行的时候报错:   ora-01445:无法从不带保留关键字的表的连接视图中选择ROWID或采样   网上搜了下,有多种原因和解决方法,最终我选择先尝试一下修改 ...

  10. ORACLE rowid,file# 和 rfile#

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

随机推荐

  1. 配置 dovecat 的 PAM

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. UVa 1252 - Twenty Questions(记忆化搜索,状态压缩dp)

    本文出自   http://blog.csdn.net/shuangde800 题目链接:点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的. 为了把所有字符串区分开,你可以询问,每次可 ...

  3. OpenGL 3:画圆

    这次使用OpenGL画圆,而且中间画一个实心的五角星. 1. 画实心五角: 由于之前使用Polygen画会出现故障,或许是各个GPU硬件也会不一样的,所以使用Polygen画实心五角星并不可靠: 所以 ...

  4. Web App 讲义教程

    http://www.csdn.net/tag/web%E5%BA%94%E7%94%A8

  5. SVN Cleanup failed的解决办法

    一开始没有更新执行了提交操作,提示有冲突 再执行更新操作的时候出现了“之前操作未完成,如果该操作被中断了执行cleanup命令”的提示

  6. php中序列化与反序列化在utf8和gbk编码中测试

    在php中如果我们统一编码是没有什么问题了,但是很多朋友会发现一个问题就是utf8和gbk编码中返回的值会有所区别: php 在utf8和gbk编码下使用serialize和unserialize互相 ...

  7. Explain的type, where 和 order by 组合是索引的选择

    Explain的type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ...

  8. Asp.Net 之 WebService部署到服务器后出现" The test form is only available for requests from the local machine "

    最近由于任务需要开发了一个WebService, 部署到服务器以后,出现上述问题,网上查找到如下解决方案: 问题原因: 从 NET Framework 1.1 起定义了一个名为 HttpPostLoc ...

  9. SQLServer 之 char、varchar、nvarchar的区别

    一.定义 1.char char是定长的,也就是当你输入的字符小于你指定的数目时,它会再后面补空值.当你输入的字符大于指定的数时,它会截取超出的字符. 例如:char(8),最多可输入4个汉字或者8个 ...

  10. cocos2d-x动作原理

    首先CCAction是所有动作的基类,如下图继承关系: 那么来看看CCAction的定义: class CC_DLL CCAction : public CCObject { public: CCAc ...