国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE中的ROWID

2024-08-29 13:29:31
字體:
來源:轉載
供稿:網友
我們可能對oracle的rowid的使用并不陌生,不過,如果仔細分析一下,發現其還是有些知識點。
1、rowid是一個偽列,是用來確保表中行的唯一性,它并不能指示出行的物理位置,但可以用來定位行。 2、rowid是存儲在索引中的一組既定的值(當行確定后)。我們可以像表中普通的列一樣將它選出來。
3、利用rowid是訪問表中一行的最快方式。
4、rowid需要10個字節來存儲,顯示為18位的字符串。
rowid的組成結構為:
data object number(6位字符串)+relative file number(3位字符串)+block number(6位字符串)+row number(3位字符串),如:aaaadeaabaaaazsaaa
5、我們可以借助oracle提供的包dbms_rowid,來對rowid進行解析從而獲取關于行的相關信息:
bossdb-sql>select
2 rowid,
3 dbms_rowid.rowid_object(rowid) obj_id,
4 dbms_rowid.rowid_relative_fno(rowid) df#,
5 dbms_rowid.rowid_block_number(rowid) blknum,
6 dbms_rowid.rowid_row_number(rowid) rowno
7 from p_test where rownum<5;
rowid obj_id df# blknum rowno
------------------ ---------- ---------- ---------- ----------
aaaq+taanaaac6saaa 69549 13 11922 0 aaaq+taanaaac6saab 69549 13 11922 1 aaaq+taanaaac6saac 69549 13 11922 2 aaaq+taanaaac6saad 69549 13 11922 3
我們可以看到,通過rowid_row_number得到的行號是從0開始的,這是和rownum偽列的一個不同之處。我猜測rowid_row_number在求行號的時候是計算首行的偏移量。

一般來說,當表中的行確定后,rowid就不會發生變化。
但當如下情況發生時,rowid將發生改變:
1、對一個表做表空間的移動后
2、對一個表進行了exp/imp后
  • 網站運營seo文章大全
  • 提供全面的站長運營經驗及seo技術!
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 大连市| 翼城县| 宝坻区| 竹北市| 丰镇市| 施秉县| 济阳县| 手游| 遂川县| 清涧县| 六枝特区| 慈溪市| 横峰县| 定陶县| 无为县| 苍南县| 昔阳县| 天柱县| 西丰县| 教育| 望城县| 陵川县| 隆安县| 丹阳市| 宁蒗| 吉水县| 广宁县| 嘉义市| 托克托县| 汾西县| 洱源县| 芒康县| 韶山市| 绥芬河市| 开远市| 松潘县| 垦利县| 太白县| 威宁| 久治县| 靖安县|