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

首頁 > 數據庫 > Oracle > 正文

ORACLE數據庫中的ROWID

2024-08-29 13:37:40
字體:
來源:轉載
供稿:網友

  我們可能對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后

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 济宁市| 永靖县| 光泽县| 柏乡县| 太白县| 荆州市| 白银市| 竹北市| 斗六市| 海门市| 子长县| 富顺县| 大同市| 个旧市| 巴彦县| 渭南市| 和田市| 濉溪县| 普兰店市| 高台县| 潼关县| 台湾省| 南投县| 辉南县| 广平县| 尼勒克县| 吴堡县| 贵港市| 永新县| 临漳县| 平泉县| 韶山市| 石阡县| 新巴尔虎右旗| 张家界市| 海林市| 大同市| 泰宁县| 呼和浩特市| 定远县| 应用必备|