oracle数据库中rowid的定义

时间:2014-12-12 00:48:10

标签: oracle rowid

当我做以下问题时,我对关于rowid的定义感到困惑。 哪一个是正确的?

ROWID是: 1.从数据库中检索的与每行关联的序列号形式的整数 2.A base-64数字,表示数据库数据文件中行的物理位置。

1 个答案:

答案 0 :(得分:1)

你将rownum与rowid混淆。

ROWID伪列返回行的地址。 Oracle数据库rowid值包含查找行所需的信息。

https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns008.htm

ROWNUM伪列返回一个数字,表示Oracle从一个表或一组连接的行中选择行的顺序

https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns009.htm

select rowid, rownum, name from sys.system_privilege_map
where rownum < 10;

ROWID   ROWNUM  NAME
AAAAFtAABAAAAiBADP  1   FLASHBACK ARCHIVE ADMINISTER
AAAAFtAABAAAAiBADO  2   ALTER DATABASE LINK
AAAAFtAABAAAAiBADN  3   ALTER PUBLIC DATABASE LINK
AAAAFtAABAAAAiBADM  4   ADMINISTER SQL MANAGEMENT OBJECT
AAAAFtAABAAAAiBADL  5   UPDATE ANY CUBE DIMENSION
AAAAFtAABAAAAiBADK  6   UPDATE ANY CUBE BUILD PROCESS
AAAAFtAABAAAAiBADJ  7   DROP ANY CUBE BUILD PROCESS
AAAAFtAABAAAAiBADI  8   CREATE ANY CUBE BUILD PROCESS
AAAAFtAABAAAAiBADH  9   CREATE CUBE BUILD PROCESS

ROWID在查询中很少使用。另一方面,ROWNUM非常频繁地用于限制结果数量,如上所示。