WEB开发网
开发学院数据库Oracle oracle8的ROWID结构 阅读

oracle8的ROWID结构

 2007-05-09 12:10:44 来源:WEB开发网   
核心提示: MOVE PARTITIONORACLE会检查ROWID中的DATA OBJECT NUMBER和BLOCK中的DATA OBJECT NUMBER,保证他们之间的版本是一致的,oracle8的ROWID结构(2),ORACLE也使用DATA OBJECT NUMBER以确保ROLLBAC

MOVE PARTITION 

ORACLE会检查ROWID中的DATA OBJECT NUMBER和BLOCK中的DATA OBJECT NUMBER,保证他们之间的版本是一致的。 

ORACLE也使用DATA OBJECT NUMBER以确保ROLLBACK的纪录和最新的SEGMENT纪录一致。 

要注意的是DATA OBJECT NUMBER不是OBJECT 的标志 

5、RESTRICTED ROWID 

ORACLE7的ROWID格式是 

1-8位:BLOCK NUMBER 

9-12位:ROW NUMBER 

13-16位:FILE NUMBER 

ORACLE8支持短的、旧格式的ROWID,作用是 

对NOPARTITION TABLE的INDEX ENTRY 

对PARTITION TABLE的LOCAL INDEX ENTRY 

ROW Piece CHain pointer 

受限ROWID的内部存放是6BYTE, 

4BYTE=DATA BLOCK NUMBER 

2BYTE=ROW NUMBER 

这就是说,INDEX ENTRY使用6BYTE存放该ROWID,这对大多数INDEX足够了。但是这种短ROWID不能使用在PATITION TABLE的GLOBAL INDEX上,因为PARTITION可能跨TABLESPACE。显示这种ROWID依然是18位的 

6、扩展的ROWID 

ORACLE在内部存放时候是10 BYTE,包括(DATA OBJECT NUMBER,DATA BLOCK NU 

MBER,ROW NUMBER) 

ORACLE8使用扩展的ROWID: 

PARTITION TABLE 的GLOBAL INDEX 

SERVER 算法 

扩展的ROWID在SELECT时,依然是18位的显示,存放在ROWID字段中。 

7、在ORACLE8中使用ORACLE7的ROWID 

从ORACLE8的DB中查询ORACLE7的ROWID时候,ROWID返回的是ORACLE7的格式,也可以用在WHERE语句中。 

从ORACLE7的DB中查询ORACLE8的ROWID时候,ROWID返回的是ORACLE8的格式,也可以用在WHERE语句中,但是不能存放在ROWID字段中。但是你要用DBMS_ROWID 包来解释之。 

Tags:oracle ROWID 结构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接