ITPub博客

首页 > 数据库 > Oracle > 由ROWID得出对象号、数据文件号、块号、行号

由ROWID得出对象号、数据文件号、块号、行号

原创 Oracle 作者:xing2999 时间:2011-12-04 21:01:57 0 删除 编辑


方法①,使用包DBMS_ROWID获取


 SELECT ROWID,

    DBMS_ROWID.ROWID_OBJECT(ROWID) OBJECT_ID,

    DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) FILE_ID,

    DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) BLOCK_ID,

    DBMS_ROWID.ROWID_ROW_NUMBER(ROWID) NUM,

    T.*

 FROM SCOTT.EMP T


方法②,创建函数,用函数获取


 CREATE OR REPLACE FUNCTION GET_ROWID(L_ROWID IN VARCHAR2) RETURN VARCHAR2 IS

 LS_MY_ROWID VARCHAR2(200);

 ROWID_TYPE NUMBER;

 OBJECT_NUMBER NUMBER;

 RELATIVE_FNO NUMBER;

 BLOCK_NUMBER NUMBER;

 ROW_NUMBER NUMBER;

BEGIN

 DBMS_ROWID.ROWID_INFO(L_ROWID,

            ROWID_TYPE,

            OBJECT_NUMBER,

            RELATIVE_FNO,

            BLOCK_NUMBER,

            ROW_NUMBER);

 LS_MY_ROWID := 'OBJECT# IS :' || TO_CHAR(OBJECT_NUMBER) || CHR(10) ||'RELATIVE_FNO IS :' || TO_CHAR(RELATIVE_FNO) || CHR(10) ||'BLOCK NUMBER IS :' || TO_CHAR(BLOCK_NUMBER) || CHR(10)      ||'ROW NUMBER IS :' || TO_CHAR(ROW_NUMBER);

 RETURN LS_MY_ROWID;

END GET_ROWID;

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24389441/viewspace-1056688/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 2011年11月续
请登录后发表评论 登录
全部评论

注册时间:2010-09-29

  • 博文量
    42
  • 访问量
    148197