zoukankan      html  css  js  c++  java
  • ORACLE DBMS_ROWID包详解

    这个包在11gR2中有11个函数或存储:

    1. 根据给定参数返回一个rowid

    --根据给定参数返回一个rowid
    FUNCTION rowid_create(rowid_type    IN NUMBER,--rowid类型,0:restricted,1:extended
                          object_number IN NUMBER,--对象id
                          relative_fno  IN NUMBER,--关联文件
                          block_number  IN NUMBER,--数据块id
                          row_number    IN NUMBER)--行号 
                          RETURN ROWID;

    2. 根据rowid返回相关参数

    --根据rowid返回相关参数
    PROCEDURE rowid_info(rowid_in      IN  ROWID,--rowid
                         rowid_type    OUT NUMBER,--rowid类型
                         object_number OUT NUMBER,--对象id
                         relative_fno  OUT NUMBER,--相关文件
                         block_number  OUT NUMBER,--数据块id
                         row_number    OUT NUMBER,--行号
                         ts_type_in    IN VARCHAR2 DEFAULT 'SMALLFILE');--表空间类型,BIGFILE:大文件表空间,SMALLFILE:传统表空间

    3. 通过rowid返回rowid类型

    --通过rowid返回rowid类型
    function rowid_type(row_id IN rowid)--rowid
                            return number;

    4. 通过rowid提取数据文件编号

    --通过rowid提取数据文件编号
    function rowid_object(row_id IN rowid)--rowid
                            return number;

    5. 通过rowid提取相关文件编号

    --通过rowid提取相关文件编号
    FUNCTION rowid_relative_fno(row_id     IN ROWID,--rowid
                                ts_type_in IN VARCHAR2 DEFAULT 'SMALLFILE')--表空间类型
      RETURN NUMBER;

    6. 通过rowid提取数据块编号

    --通过rowid提取数据块编号
    FUNCTION rowid_block_number(row_id     IN ROWID,--rowid
                                ts_type_in IN VARCHAR2 DEFAULT 'SMALLFILE')--表空间类型
      RETURN NUMBER;

    7. 通过rowid提取行号

    --通过rowid提取行号
    function rowid_row_number(row_id IN rowid)--rowid
                            return number;

    8. 通过rowid和给定表,提取相关文件编号

    --通过rowid和给定表,提取相关文件编号
    FUNCTION rowid_to_absolute_fno(row_id      IN ROWID,--rowid
                                   schema_name IN VARCHAR2,--拥有者
                                   object_name IN VARCHAR2) --对象名
                                   RETURN NUMBER;

    9. 转换一个restricted rowid为一个extended rowid

    --转换一个restricted rowid为一个extended rowid.
    --如果原始的rowid存储在列中,转换的 就是internal类型;
    --如果原始的rowid是以字符串形式存储的,那转换的就是external类型
    FUNCTION rowid_to_extended(old_rowid       IN ROWID,--rowid
                               schema_name     IN VARCHAR2,--拥有者
                               object_name     IN VARCHAR2,--对象名
                               conversion_type IN INTEGER)--转换类型,0:转换restricted internal rowid为extended格式
                                                          --转换类型,1:转换restricted external rowid为extended格式

    10. 转换一个exteneded的rowid为一个restricted的rowid

    --转换一个exteneded的rowid为一个restricted的rowid
    --restricted的rowid格式为BBBBBBB.RRRR.FFFFF, 
    --BBBBBBB 代表block
    --RRRR 代表在block中的行号,从0开始
    --FFFFF 代表文件号。
    --这个包可以使用rowid或者rowid转换类型(ROWID_CONVERT_INTERNAL (0)和ROWID_CONVERT_EXTERNAL (1))
    FUNCTION rowid_to_restricted(old_rowid       IN ROWID,--rowid
                                 conversion_type IN INTEGER)--rowid_convert_internal  := 0;
                                                            --rowid_convert_external  := 1;
                                 RETURN ROWID;

    11. 验证rowid 有效性

    --验证rowid是否有效
    FUNCTION rowid_verify(rowid_in        IN ROWID,--rowid
                          schema_name     IN VARCHAR2,--拥有者
                          object_name     IN VARCHAR2,--对象名
                          conversion_type IN INTEGER)--rowid_convert_internal := 0;
                                                     --rowid_convert_external := 1;
                          RETURN NUMBER;
  • 相关阅读:
    数据库——数据操作——数据的增删改(8)
    数据库——完整性约束(7)
    数据库——数据类型(6)
    生成代码的代码 之 POJO生成器 之二 模板实现
    生成代码的代码 之 错误代码类生成器
    生成代码的代码 之 POJO生成器
    [翻译] Trident-ML:基于storm的实时在线机器学习库
    Vim实用技巧系列
    基于循环数组的无锁队列
    Vim实用技巧系列
  • 原文地址:https://www.cnblogs.com/wolil/p/5685575.html
Copyright © 2011-2022 走看看