亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

關于擴展(extended)的rowid的一些內容

2019-11-18 13:16:06
字體:
來源:轉載
供稿:網友

  1.    rowid的介紹
  先對rowid有個感官熟悉:
  
  SQL> select ROWID from BrUCe_test where rownum<2;
  
  ROWID
  ------------------ ----------
  AAABnlAAFAAAAAPAAA
  
  ROWID的格式如下:
  
  數據對象編號    文件編號    塊編號      行編號
  
  OOOOOO       FFF        BBBBBB RRR
  
  我們可以看出,從上面的rowid可以得知:
  
  AAABnl 是數據對象編號
  
  AAF是相關文件編號
  
  AAAAAP是塊編號
  
  AAA 是行編號
  
  怎么依據這些編號得到具體的十進制的編碼值呢,這是經常碰到的問題。這里需要明白rowid的是基于64位編碼的18個字符顯示(數據對象編號(6) +文件編號(3) +塊編號(6)+    行編號(3)=18位),其中
  
  A-Z <==> 0 - 25 (26)
  a-z <==> 26 - 51 (26)
  0-9 <==> 52 - 61 (10)
  +/ <==> 62 - 63 (2)
  
  共64位,明白這個后,就可以計算出10進制的編碼值,計算公式如下:
  
  d * (b ^ p)
  
  其中:b就是基數,這里就是64,p就是從右到左,已0開始的位置數
  
  比如:上面的例子
  
  文件號AAF,具體的計算應該是:
  
  5*(64^0)=5;
  
  0*(64^1)=0;
  
  0*(64^2)=0;
  
  文件號就是0+0+5=5
  
  剛才提到的是rowid的顯示方式:基于64位編碼的18個字符顯示,其實rowid的存儲方式是:10 個字節即80位存儲,其中數據對象編號需要32 位,相關文件編號需要10 位,塊編號需要22,位行編號需要16 位,由此,我們可以得出:
  
  32bit的object number,每個數據庫最多有4G個對象
  
  10bit的file number,每個對象最多有1022個文件(2個文件預留)
  
  22bit的block number,每個文件最多有4M個BLOCK
  
  16bit的row number,每個BLOCK最多有64K個ROWS
  
  2.    rowid相關的有用的sql
  最簡單的基于rowid的顯示方式得到的響應的64位編碼對應值的sql:
  
  select rowid ,
  
  substr(rowid,1,6) "OBJECT",
  
  substr(rowid,7,3) "FILE",
  
  substr(rowid,10,6) "BLOCK",
  
  substr(rowid,16,3) "ROW"
  
  from TableName;
  
  OWID       OBJECT    FILE  BLOCK    ROW
  
  ------------------ ------------ ------ ------------ ------
  
  AAABc4AADAAAGLUAAA AAABc4    AAD  AAAGLU    AAA
  
  AAABc4AADAAAGLUAAB AAABc4    AAD  AAAGLU    AAB
  
  AAABc4AADAAAGLUAAC AAABc4    AAD  AAAGLU    AAC
  
  AAABc4AADAAAGLUAAD AAABc4    AAD  AAAGLU    AAD
  
  AAABc4AADAAAGLUAAE AAABc4    AAD  AAAGLU    AAE
  
  通過dbms_rowid這個包,可以直接的得到具體的rowid包含的信息:
  
  select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid) file_id,
  dbms_rowid.rowid_block_number(rowid) block_id ,dbms_rowid.rowid_row_number(rowid) num from bruce_t where rownum<5;
  
  OBJECT_ID  FILE_ID  BLOCK_ID    NUM
  
  ---------- ---------- ---------- ----------
  
     5944     3   25300     0
  
     5944     3   25300     1
  
     5944     3   25300     2
  
     5944     3   25300     3
  
  一些使用ROWID的函數
  ROWIDTOCHAR(rowid) :將ROWID轉換成STRING
  CHARTOROWID('rowid_string') :將STRING轉換成ROWID
  
   另外,就是自己寫的一些函數:(下面的函數是網友eygle提供)
  
  create or replace function get_rowid
  
  (l_rowid in varchar2)
  
  return varchar2
  
  is
  
  ls_my_rowid   varchar2(200);     
  
  rowid_type   number;     
  
  object_number   number;     
  
  relative_fno   number;     
  
  block_number   number;     
  
  row_number   number; 
  
  begin
  
   dbms_rowid.rowid_info(l_rowid,rowid_type,object_number,relative_fno, block_number, row_number);     
  
   ls_my_rowid := 'Object# is   :'to_char(object_number)chr(10)
  
      'Relative_fno is :'to_char(relative_fno)chr(10)
  
      'Block number is :'to_char(block_number)chr(10)
  
      'Row number is  :'to_char(row_number);
  
   return ls_my_rowid ;
  
  end;     
  
  /
  
  應用上面的函數如下:
  
  SQL> select get_rowid(rowid), name from bruce_t;
  
  GET_ROWID(ROWID)                                 NAME
  
  -------------------------------------------------------------------------------- --------------------------------
  
  Object# is   :5944                           BruceLau
  
  Relative_fno is :3                               
  
  Block number is :25300                             
  
  Row number is  :0                               
  
  Object# is   :5944                           MabelTang
  
  Relative_fno is :3                               
  
  Block number is :25300                             
  
  Row number is  :1

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色在人av网站天堂精品| 国产精品欧美日韩| 欧美精品久久久久久久| 国产欧美精品xxxx另类| 精品国产老师黑色丝袜高跟鞋| 欧美美女15p| 欧美日韩亚洲视频| 欧美一二三视频| 国产精品日韩久久久久| 综合久久五月天| 亚洲乱码av中文一区二区| 色婷婷av一区二区三区在线观看| 精品久久久久久久久久久久久久| 欧美猛交免费看| 欧美日韩国产在线播放| 欧美日韩免费在线观看| 久久精品国产视频| 久久天天躁狠狠躁夜夜爽蜜月| 久久精品99久久久久久久久| 欧美午夜电影在线| 国产成人精品最新| 亚洲天堂免费视频| 国产精品国产三级国产专播精品人| 日韩av电影手机在线观看| 在线观看精品国产视频| 国内精品伊人久久| 九九九久久国产免费| 久久男人资源视频| 国产精品高清网站| 日韩在线视频免费观看高清中文| 韩曰欧美视频免费观看| 日韩精品中文字幕在线| 国产欧美日韩亚洲精品| 亚洲电影免费在线观看| 欧美床上激情在线观看| 午夜精品一区二区三区在线| 亚洲视频在线视频| 日韩视频免费在线观看| 777777777亚洲妇女| 亚洲精品视频久久| 欧美视频免费在线观看| 日产精品99久久久久久| 国产一区欧美二区三区| 中文字幕欧美视频在线| 久久这里只有精品99| 国产欧美日韩中文字幕在线| 伊人久久综合97精品| 久久久久久久久久国产| 精品国偷自产在线| 91夜夜未满十八勿入爽爽影院| 欧美激情2020午夜免费观看| 91亚洲精品一区| 欧美三级欧美成人高清www| 自拍偷拍亚洲区| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲欧美日韩一区二区在线| 久久久久久久色| 成人激情综合网| 国产婷婷成人久久av免费高清| 久久久久久国产免费| 久久久影视精品| 亚洲免费av片| 亚洲天堂成人在线| 欧美成人免费在线观看| 国产精品99导航| 亚洲欧美制服中文字幕| 欧美精品中文字幕一区| 久久久久国产精品免费| 国产精品免费久久久久影院| 伊人久久久久久久久久| 一个人www欧美| 精品久久久久久亚洲精品| 2018日韩中文字幕| 久久天天躁夜夜躁狠狠躁2022| 色777狠狠综合秋免鲁丝| 欧美激情久久久久| 国产一区私人高清影院| 精品久久香蕉国产线看观看gif| 国产91精品久久久久久| 久久久91精品| 欧美成人精品一区| 精品伊人久久97| 国产亚洲成精品久久| 日韩av不卡电影| 成人国产精品久久久| 欧美日韩成人网| 97久久久久久| 国产精品自拍网| 中文字幕免费精品一区高清| 国产精品中文字幕久久久| 亚洲色图17p| 久久久久久久一区二区| 亚洲欧美中文字幕在线一区| 欧美日韩亚洲视频一区| 中文字幕日韩在线视频| 亚洲精品电影网在线观看| 亚洲精品国产拍免费91在线| 日韩美女视频中文字幕| 国产成人一区二区在线| 欧美性色19p| 日本国产一区二区三区| 97在线免费观看视频| 日韩av在线网站| 在线成人激情黄色| 欧美高清在线播放| 这里只有精品视频在线| 91久久久久久久久久久久久| 欧美日韩国产一区二区| 91超碰caoporn97人人| 国产精品欧美亚洲777777| 日韩一区二区三区国产| 精品无码久久久久久国产| 一区二区三区 在线观看视| 久久久免费av| 亚洲精品少妇网址| 亚洲天堂av图片| 色偷偷88888欧美精品久久久| 亚洲成人精品av| 久久精品91久久久久久再现| 热久久美女精品天天吊色| 91性高湖久久久久久久久_久久99| 亚洲精品国精品久久99热一| 国产精品久久久亚洲| 欧美在线欧美在线| 亚洲色图综合久久| 2018中文字幕一区二区三区| 成人激情春色网| 亚洲欧美中文字幕| 亚洲夜晚福利在线观看| 国产日产欧美a一级在线| 国内精品视频在线| 亚洲人精选亚洲人成在线| 另类视频在线观看| 性色av一区二区三区| 国产日本欧美在线观看| 超在线视频97| 色悠久久久久综合先锋影音下载| 青青草成人在线| 久久久伊人欧美| 亚洲日韩中文字幕| 国产热re99久久6国产精品| 亚洲欧美制服中文字幕| 亚洲国产日韩精品在线| 国产欧美一区二区三区久久人妖| 日韩视频免费大全中文字幕| 日韩av最新在线| 最近免费中文字幕视频2019| 亚洲精品自拍第一页| 2019中文字幕在线免费观看| 亚洲免费电影一区| 狠狠色狠色综合曰曰| 亚洲精品国产品国语在线| 久久久久久伊人| 亚洲精品欧美日韩| 国产精品久久久久高潮| 日韩三级影视基地| 国产三级精品网站| 日本久久亚洲电影| 国模私拍视频一区| 午夜精品在线观看| 在线视频一区二区| 久久久在线视频| 国产精品激情av在线播放| 亚洲欧美色图片|