• DBMS_ROWID包的使用


    dbms_rowid包可以通过表中各条记录的唯一rowid号,来查看这条记录的信息,例如所属object、block等等。这个包很简单,但是对于确定当前行的信息值还是比较有用的。而dbms_rowid包的function可以在SQL中直接使用,下面先找一个rowid出来。

    SQL> select rowid,object_name,object_id from t1 where rownum = 1; 
    
    ROWID                OBJECT_NAME           OBJECT_ID 
    
    ------------------   -------------------- ----------
    
    AAAR7jAAEAAAAC7AAA  ICOL$                        20

    1、dbms_rowid.rowid_create             --输入相应信息后自己创建一个ROWID并返回,主要用于测试比对

    2、dbms_rowid.rowid_info               --返回ROWID确定的各种信息

    3、dbms_rowid.rowid_type               --返回ROWID类型(restricted or extended)

    rowid_type_restricted constant integer := 0;
    rowid_type_extended   constant integer := 1;

    SQL> select dbms_rowid.rowid_type('AAAR7jAAEAAAAC7AAA') from dual;
    
    DBMS_ROWID.ROWID_TYPE('AAAR7JAAEAAAAC7AAA') 
    ------------------------------------------- 
                                              1

    4、dbms_rowid.rowid_object             --返回该ROWID对应的OBJECT的OBJ#

    SQL> select dbms_rowid.rowid_object('AAAR7jAAEAAAAC7AAA') from dual; 
    
    
    DBMS_ROWID.ROWID_OBJECT('AAAR7JAAEAAAAC7AAA') 
    
    ---------------------------------------------
    
                                            73443 
    SQL> select owner,object_name from all_objects where data_object_id = 73443; 
    
    OWNER                          OBJECT_NAME 
    
    ------------------------------ --------------------
    U1                             T1 

    5、dbms_rowid.rowid_relative_fno       --返回该ROWID对应的对应文件号

    SQL> select dbms_rowid.rowid_relative_fno('AAAR7jAAEAAAAC7AAA') from dual; 
    
    DBMS_ROWID.ROWID_RELATIVE_FNO('AAAR7JAAEAAAAC7AAA') 
    
    ---------------------------------------------------
    
                                                      4 
    
    SQL> select file_name,file_id,tablespace_name from dba_data_files where file_id = 4; 
    
     
    FILE_NAME                                   FILE_ID TABLESPACE_NAME 
    ---------------------------------------- ---------- ------------------------------
    
    +DG/orcl/datafile/users.259.773991911             4 USERS  
    
    SQL> select owner,table_name,tablespace_name from dba_tables where table_name = 'T1';  
    
    OWNER                          TABLE_NAME                     TABLESPACE_NAME 
    
    ------------------------------ ------------------------------ ------------------------------
    U1                             T1                             USERS 

    6、dbms_rowid.rowid_block_number       --返回该ROWID所在的BLOCK号

    SQL> select dbms_rowid.rowid_block_number('AAAR7jAAEAAAAC7AAA') from dual; 
    
    DBMS_ROWID.ROWID_BLOCK_NUMBER('AAAR7JAAEAAAAC7AAA') 
    
    ---------------------------------------------------
                                                    187 

    7、dbms_rowid.rowid_row_number         --返回该行数据在BLOCK中的相对位置

    SQL> select dbms_rowid.rowid_row_number('AAAR7jAAEAAAAC7AAA') from dual; 
    
    DBMS_ROWID.ROWID_ROW_NUMBER('AAAR7JAAEAAAAC7AAA') 
    
    -------------------------------------------------
                                                    0 

    8、dbms_rowid.rowid_to_absolute_fno    --返回相关的完全数据文件号

    SQL> select dbms_rowid.rowid_to_absolute_fno('AAAR7jAAEAAAAC7AAA','U1','T1') from dual; 
    
    DBMS_ROWID.ROWID_TO_ABSOLUTE_FNO('AAAR7JAAEAAAAC7AAA','U1','T1') 
    
    ----------------------------------------------------------------
                                                                   4 

    9、dbms_rowid.rowid_to_extended        --将restricted类型的ROWID修改为extended
    10、dbms_rowid.rowid_to_restricted      --将extended类型的ROWID修改为restricted
    11、dbms_rowid.rowid_verify             --查看是否可以对ROWID的类型进行修改

  • 相关阅读:
    License for package Android SDK Build-Tools 28.0.3 not accepted
    React实现座位排布组件
    Flutter中Expanded组件用法
    Ant Design Pro路由传值
    Ant Design中getFieldDecorator方法的特殊用法(小bug)
    React子组件和父组件通信
    Ant Design Pro项目打开页设为登录或者其他页面
    JS中的splice方法
    Ant Design 表单中getFieldDecorator、getFieldValue、setFieldValue用法
    c++下标越界问题探讨
  • 原文地址:https://www.cnblogs.com/snaid/p/3639043.html
Copyright © 2020-2023  润新知