1 准备测试环境:
SQL> create table c as select * from dept;Table created.SQL> select * from c; DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTONSQL> select rowid,c.* from c;ROWID DEPTNO DNAME LOC
------------------ ---------- -------------- -------------
AAAM5/AAEAAAEmEAAA 10 ACCOUNTING NEW YORK
AAAM5/AAEAAAEmEAAB 20 RESEARCH DALLAS
AAAM5/AAEAAAEmEAAC 30 SALES CHICAGO
AAAM5/AAEAAAEmEAAD 40 OPERATIONS BOSTONSQL> select get_rowid("AAAM5/AAEAAAEmEAAA") row_id from dual;ROW_ID
--------------------------------------------------------------------------------
Object# is :52863
Relative_fno is :4
Block number is :18820
Row number is :0ps:
get_rowid 这个函数是用来获得row_id的详信息,实现如下:
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; 2登入bbed
[Oracle@localhost ~]$ bbed parfile=bbed.par
Password: BBED: Release 2.0.0.0.0 - Limited Production on Thu Jun 14 13:09:44 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.************* !!! For Oracle Internal Use only !!! *************** BBED> set dba 4,18820
DBA 0x01004984 (16796036 4,18820)BBED> find /c ACCOUNTING TOP
File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_7wvsw7hg_.dbf (4)
Block: 18820 Offsets: 8169 to 8191 Dba:0x01004984
------------------------------------------------------------------------
4143434f 554e5449 4e47084e 45572059 4f524b02 06483a <32 bytes per line>BBED> dump /v dba 4,18820 offset 8169 count 23
File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_7wvsw7hg_.dbf (4)
Block: 18820 Offsets: 8169 to 8191 Dba:0x01004984
-------------------------------------------------------
4143434f 554e5449 4e47084e 45572059 l ACCOUNTING.NEW Y
4f524b02 06483a l ORK..H: <16 bytes per line> BBED> p *kdbr[0] --*kdbr[n],其中n是row number
rowdata[66]
-----------
ub1 rowdata[66] @8162 0x2cBBED> dump /v dba 4,18820 offset 8162 count 23
File: /u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_7wvsw7hg_.dbf (4)
Block: 18820 Offsets: 8162 to 8184 Dba:0x01004984
-------------------------------------------------------
2c000302 c10b0a41 43434f55 4e54494e l ,...?..ACCOUNTIN
47084e45 572059 l G.NEW Y <16 bytes per line> 以上是完好的行,accounting所在行显示为2c,那么,到sqlplus,将其删除:
MySQL存储过程递归调用MySQL SQL语句过长引起的问题相关资讯 BBED
- Oracle BBED 修改数据内容 (今 09:49)
- 通过BBED修复ORA-01190错误 (11/16/2015 10:51:13)
| - Oracle 11g 编译使用BBED (03月08日)
|
本文评论 查看全部评论 (0)