这部分内容doc(The rows of some tables have addresses that are not physical or permanent or were not generated by Oracle Database. For example, the row addresses of index-organized tables are stored in index leaves, which can move. Oracle provides these tables with logical row identifiers, called logical rowids. Rowids of foreign tables, such as DB2 tables accessed through a gateway, are not standard Oracle Database rowids. Oracle provides foreign tables with identifiers called foreign rowids.Oracle Database uses universal rowids (urowids) to store the addresses of index-organized and foreign tables. Both types of urowid are stored in the ROWID pseudocolumn, as are the physical rowids of heap-organized tables.Oracle creates logical rowids based on the primary key of the table. The logical rowids do not change as long as the primary key does not change. The ROWID pseudocolumn of an index-organized table has a datatype of UROWID. You can access this pseudocolumn as you would the ROWID pseudocolumn of a heap-organized table (that is, using a SELECT ... ROWID statement). If you want to store the rowids of an index-organized table, then you can define a column of type UROWID for the table and retrieve the value of the ROWID pseudocolumn into that column.)介绍的更加清楚,Logical Rowids 的数据类型是UROWID(universal rowids ),Logical Rowids 主要是用在iot类型的表上。oracle创建或者生成Logical Rowids 是基于表的primary key,如果primary key不改变则Logical Rowids 就不会发生变化。
Logical Rowids 依赖primary key,所以创建iot类型的表不指定primary key是不行的
physical rowid是用来标识一般的表、分区、子分区、簇结构里的每一个行的。
logical rowid是用于索引组织表的(index organized tables,IOT)。这是一种b-tree结构的表,可以同时把表和索引储存在一起。但是它不会存储每一行的物理rowid,而是把整个行作为index的一部分进行存储,所以它是没有物理rowid的,而是通过主关键字进行识别,就像index。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11517198/viewspace-670294/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11517198/viewspace-670294/