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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM