http://search.csdn.net/Expert/topic/1890/1890719.xml?temp=.2550165

解决方案 »

  1.   

    oracle为每个表的每一条记录都赋予了一个唯一的标识号rowid
    它是伪列,在定义表结构时并不声明它,但是系统自动建立.
    用desc查看的表结构的时候见看不到该字段.
    用rowid来进行update,delete等操作时速度最快.
    而且oracle7和oracle8及以后版的rowid不同:oracle 7 的rowid由三部分组成:
    block.row.file
    BBBBBBBB.RRRR.FFFF
    文件块号.块中的行号.文件的绝对号oracle 8    8i       9i的rowid由四部分组成:
    OOOOOOFFFBBBBBBRRR
    OOOOOO:数据对象号,表示数据库段的编号
    FFF表在空间中的相对文件号
    BBBBBB:在一个文件中的块号
    RRR块中行的位置号rowid数据类型的使用:
    rowidtochar:把rowid转换成char类型.select rowidtochar(a.rowid) from testa a where rownum<=1
    AABj3OAEoAAAHpjAAAselect chartorowid('AABj3OAEoAAAHpjAAA') from dual
    AABj3OAEoAAAHpjAAA