zoukankan      html  css  js  c++  java
  • Oracle 中伪数列ROWID

      Oracle 的ROWID 用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址。

      一般来说,每一行数据对应的rowid是固定而且唯一的,在这一行数据存入数据库的时候就确定了。

      可以利用rowid来查询记录,而且通过rowid查询记录是查询速度最快的查询方法。ROWID只有在表发生移动(比如表空间变化,数据导入/导出以后),才会发生变化。

      ROWID的结构:

      有18位,每位使用base-64代码,包括a-z,A-Z,0-9,+,- 共64个字符表示。 A表示0,B表示1,。。。Z表示25,a表示26,。。。z表示51,0表示52,。。9表示61,+表示62,-表示63。ROWID具体可以划分为4个部分。
      
      1-6位:代表OBJECT ——数据对象编码 。将其转化成数字后匹配DBA_OBJECTS中DATA_OBJECT_ID字段值,可以确定表信息。
      7-9位:文件相对值 ——相关文件编码。 相对表空间的数据文件号。
      10-15:文件中的BLOCK ——块编码。 表示这条记录在数据文件中的第几个BLOCK中。
      16-18:BLOCK中的SLOT值 ——行编码。表示这条记录是BLOCK中的第几条记录。
     
      注:在FORM开发过程,如果数据块重新布局,ROWID项的属性值就会自动变为4,此时需手工修改值为18。
  • 相关阅读:
    洛谷 P2695 骑士的工作
    洛谷 P2839 畅通工程
    hdu_5742_It's All In The Mind
    hdu_5734_Acperience
    hdu_5738_Eureka(脑洞)
    hdu_5724_Chess(组合博弈)
    Codeforces Round #363 (Div. 2)D. Fix a Tree(并查集)
    Codeforces Round #363 (Div. 2) B. One Bomb (水题)
    Codeforces Round #363 (Div. 2) C. Vacations(DP)
    hdu_5723_Abandoned country(最小生成树)
  • 原文地址:https://www.cnblogs.com/Cqiang/p/2746531.html
Copyright © 2011-2022 走看看