首页 > Linux操作系统 > Linux操作系统 > dba转换到文件号和数据块号
<DIV>方便以后寻找起来,把eygle的脚本帖上来。
CREATE OR REPLACE FUNCTION getbfno (p_dba IN VARCHAR2)
RETURN VARCHAR2
IS
l_str VARCHAR2 (255) DEFAULT NULL;
BEGIN
l_str :=
'datafile# is:'
|| DBMS_UTILITY.data_block_address_file (TO_NUMBER (LTRIM (p_dba, '0x'),'xxxxxxxx'))
|| chr(10)||'datablock is:'
|| DBMS_UTILITY.data_block_address_block (TO_NUMBER (LTRIM (p_dba, '0x'),'xxxxxxxx'));
RETURN l_str;
END;
/
---------------------------------------------------------------------------------------------------------------------------------
SQL>
SQL> CREATE OR REPLACE FUNCTION getbfno (p_dba IN VARCHAR2)
2 RETURN VARCHAR2
3 IS
4 l_str VARCHAR2 (255) DEFAULT NULL;
5 BEGIN
6 l_str :=
7 'datafile# is:'
8 || DBMS_UTILITY.data_block_address_file (TO_NUMBER (LTRIM (p_dba, '0x'),'xxxxxxxx'))
9 || chr(10)||'datablock is:'
10 || DBMS_UTILITY.data_block_address_block (TO_NUMBER (LTRIM (p_dba, '0x'),'xxxxxxxx'));
11 RETURN l_str;
12 END;
13 /
Function created
SQL>
SQL> col bfno for a30;
SQL> select getbfno('0x01c00082') bfno from dual;
BFNO
------------------------------
datafile# is:7
datablock is:130
-----------------------------------------------------------------------------------------------------------------------
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22372063/viewspace-704827/ ,如需转载,请注明出处,否则将追究法律责任。