日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rowid

發布時間:2025/3/8 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rowid 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ROWID的格式
rowidOOOOOOFFFBBBBBBRRR
說明數據對象號相對文件號數據塊號行號

上述表格是Oracle 9i及以上版本數據庫中的rowid格式:

6位對象號+3位相對文件號+6位數據塊號+3位行號,是一個18位的64進制值。這個18位的64進制值在數據庫內卻是以10個bytes合計80個bit的二進制數存放的,和我們直接看到的結果有所區別。

這里的64進制和10進制的對應編碼如下:

?

其中, 6位的對象號在數據庫中是用32位二進制來存放的,也就意味著一一個oracle數據庫中最多可以有232個對象,即4G個對象; 3位的相對文件號在數據庫中是用10位二進制來存放的,也就意味著-一個表空間中最多可以容納210=1024去掉全0和全1個數據文件 ,

即1022個數據文件; 6位的數據塊號用22位二進制來存放的,也就意味著-個數據文件最多可以包含222=4M個數據塊; 3位的行號在數據庫中是用1 6位二進制來存放的,也就意味著一一個數據塊上最多可以容納21 6-65536行記錄。

?

對于大文件表空間下的rowid有如下特定的格式,這有別于小文件表空間下的rowid格式:

000000BBBBBBBBBRRR

即,6位的數據庫對象號+9位的數據塊號+3位的行號,同樣也是以18位的64進制值來表示80位的二進制數。只不過,在這里少了相對文件號,其中6位的數據庫對象號用32位的二進制數來存放(即-一個數據庫最多可以擁有232=4G個數據塊對象),9位的數據塊號同樣用32位的二進制數來存放(即一個大文件表空間可以擁有232個數據塊兒),最后3位的行號占用剩余的16位的二進制數,正好占滿80位。

?

?

大文件相對文件號為0,因為大文件的表的rowid格式中根本就不存在相對文件號的信息,最本質的原因是大文件表空間下永遠只能有且僅有1個數據文件。也就沒有相對文件號的概念了。同時,對于大文件的表空間,如果數據塊大小為32K的話,那

我們可以在查詢列表中,把rowid偽列當做普通的字段來查詢。

我們還可以通過數據庫提供給我們的工具包來獲取該信息:

SQL> select rowid,

2 dbms _rowid.rowid_ _bject(rowid) object id,3 dbms, _kowid.rowid_ relative_ fnorowid) file_ id,

4 dbms_ rowid.rowid. bock _number(rowid) block_ jd ,5 dbms_ rowidrowid_ row_ number(rowid) num ,

6 rowidtochar(rowid) from employees where employee_ jd=1007;

ROWID ?OBJECT_ID FILEI _ID BLOCK_ ID ?NUM ROWIDTOCHAR(ROWID)

AAAR5pAAF AAAADPAAA ?73321 ?5 ?207 ?: 0 AAAR5pAAFAAAADPAAA

?

?

?

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的rowid的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。