关于 Rowid
- 关于 Rowid 推荐度:
- 相关推荐
关于 Rowid
oracle为每个表的每一条记录都赋予了一个唯一的标识号rowid
它是伪列,在定义表结构时并不声明它,但是系统自动建立.
用desc查看的表结构的时候见看不到该字段.
用rowid来进行update,delete等操作时速度最快.
而且oracle7和oracle8及以后版的rowid不同:
oracle 7 的rowid由三部分组成:
block.row.file
BBBBBBBB.RRRR.FFFF
文件块号.块中的行号.文件的绝对号
oracle 8 8i 9i的rowid由四部分组成:
OOOOOOFFFBBBBBBRRR
OOOOOO:数据对象号,表示数据库段的编号
FFF表在空间中的相对文件号
BBBBBB:在一个文件中的块号
RRR块中行的位置号
rowid数据类型的使用:
rowidtochar:把rowid转换成char类型.
select rowidtochar(a.rowid) from testa a where rownum<=1
AABj3OAEoAAAHpjAAA
select chartorowid('AABj3OAEoAAAHpjAAA') from dual
AABj3OAEoAAAHpjAAA