Heim > Datenbank > MySQL-Tutorial > Hauptteil

All about rowid in Oracle Database 11g

WBOY
Freigeben: 2016-06-07 15:01:57
Original
1172 Leute haben es durchsucht

SQL select t.rowid,t.* from scott.test t; ROWID DEPTNO DNAME LOC ------------------ ---------- -------------- ------------- AAAPtpAAEAAAADbAAA 10 ACCOUNTING NEW YORK AAAPtpAAEAAAADbAAB 20 RESEARCH DALLAS AAAPtpAAEAAAADbAAC 30 SALES CHICAGO

SQL> select t.rowid,t.* from scott.test t;

ROWID                  DEPTNO DNAME          LOC
------------------ ---------- -------------- -------------
AAAPtpAAEAAAADbAAA         10 ACCOUNTING     NEW YORK
AAAPtpAAEAAAADbAAB         20 RESEARCH       DALLAS
AAAPtpAAEAAAADbAAC         30 SALES          CHICAGO
AAAPtpAAEAAAADbAAD         40 OPERATIONS     BOSTON
rowid(AAAPtpAAEAAAADbAAD)详解
AAAPtp  --object#
AAE     --file#
AAAADb  --block#
AAD     --row#

SQL> select rowid ,
  2  substr(rowid,1,6) "OBJECT#",
  3  substr(rowid,7,3) "FILE#",
  4  substr(rowid,10,6) "BLOCK#",
  5  substr(rowid,16,3) "ROW#"
  6  from scott.test;

ROWID              OBJECT#                  FILE#        BLOCK#                   ROW#
------------------ ------------------------ ------------ ------------------------ ------------
AAAPtpAAEAAAADbAAA AAAPtp                   AAE          AAAADb                   AAA
AAAPtpAAEAAAADbAAB AAAPtp                   AAE          AAAADb                   AAB
AAAPtpAAEAAAADbAAC AAAPtp                   AAE          AAAADb                   AAC
AAAPtpAAEAAAADbAAD AAAPtp                   AAE          AAAADb                   AAD


转换 rowid 的 object#

SQL> select DBMS_ROWID.ROWID_OBJECT('AAAPtpAAEAAAADbAAD') from dual
  2  union all
  3  select object_id  from dba_objects where object_name = 'TEST' AND owner='SCOTT';

DBMS_ROWID.ROWID_OBJECT('AAAPTPAAEAAAADBAAD')
---------------------------------------------
                                        64361
                                        64361

转换 rowid 的 file# (相对文件编号)

SQL> select DBMS_ROWID.ROWID_RELATIVE_FNO('AAAPtpAAEAAAADbAAD') from dual
  2  union all
  3  select a.file_id from dba_data_files a,dba_segments b where b.SEGMENT_NAME ='TEST' and b.owner='SCOTT' and a.tablespace_name=b.tablespace_name;

DBMS_ROWID.ROWID_RELATIVE_FNO('AAAPTPAAEAAAADBAAD')
---------------------------------------------------
                                                  4
                                                  4
                                                  
转换 rowid 的 block#
                                                  
SQL> select dbms_rowid.rowid_block_number('AAAPtpAAEAAAADbAAD') from dual;

DBMS_ROWID.ROWID_BLOCK_NUMBER('AAAPTPAAEAAAADBAAD')
---------------------------------------------------
                                                219
                                                
转换 rowid 的 row#

SQL>  select DBMS_ROWID.ROWID_ROW_NUMBER(rowid) from scott.test;

DBMS_ROWID.ROWID_ROW_NUMBER(ROWID)
----------------------------------
                                 0
                                 1
                                 2
                                 3


转换 rowid 的绝对文件编号

SQL> select DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO('AAAPtpAAEAAAADbAAD','SCOTT','TEST') from scott.test;

DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO('AAAPTPAAEAAAADBAAD','SCOTT','TEST')
---------------------------------------------------------------------
                                                                    4
                                                                    4
                                                                    4

                                                                    4


<p><span></span></p><p><span><span>作者:xiangsir</span></span></p><p><span></span></p><p><span><span>QQ:444367417</span></span></p><p><span><span>MSN:xiangsir@hotmail.com</span></span></p>
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage