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