oracle中的rowid简介

oracle中的rowid是表的一个默认伪列,主要用于行的快速定位。oracle的索引就是通过rowid来查找相应的数据。rowid在一行创建之后值就确定下来,除了以下情况外这个值基本不变,
1.表空间的移动
2.表exp/imp

rowid结构:
oracle8版本之前,占用6个字节,10bit的file#,22bit的block#,16bit的row#.
oracle8版本之后,占用10字节,用base64编码,显示为18位的字符串,6位字符串的data object number,3位字符串的relative file number,6位字符串的block number,3位字符串的row number。
select t.rowid from sms_batch_log t where rownum=1;

------------------
AAAWBUAAEAAN4qMAAA

这里注意rownum是用于确定行号,rownum=1是第一行记录,如果要显示大于第一行记录的话要用rownum<n (表示前n-1行记录),注意不能用n>1,oracle默认不支持大于1的rownum查询,具体原因可以有待搜索查询。

上面的查询语句是第一行记录的rowid,
AAAWBU表示data object number
AAE表示relative file number
AAN4qM表示block number
AAA表示row number

rowid是查询特定行最快的方法,直接定位到数据块。

待续。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值