Print 命令默认使用16进制显示数据,当然我们也可以指定bbed使用其他格式显示数据,如下所示:
Switch Display formatt
/x Hex
/d Signed decimal
/u Unsigned decimal
/o Octal
/c Character
/n Oracle number
/t Oracle date
/i Oracle rowid
BBED> print rowdata[7] ---------- ub1 rowdata[7] @8169 0x6e BBED> print /c rowdata[7] ---------- ub1 rowdata[7] @8169 n BBED> print /n rowdata[7] ---------- ub1 rowdata[7] @8169 110我们也可以指定数据结构的名称,来打印显示该结构的详细信息,如
BBED> p kcbh struct kcbh, 20 bytes @0 ub1 type_kcbh @0 0x06 ub1 frmt_kcbh @1 0xa2 ub1 spare1_kcbh @2 0x00 ub1 spare2_kcbh @3 0x00 ub4 rdba_kcbh @4 0x01400014 ub4 bas_kcbh @8 0x0006e7ae ub2 wrp_kcbh @12 0x0000 ub1 seq_kcbh @14 0x01 ub1 flg_kcbh @15 0x06 (KCBHFDLC, KCBHFCKV) ub2 chkval_kcbh @16 0xcc8e ub2 spare3_kcbh @18 0x0000
EXAMPLE
Example命令用来显示数据块中的数据,可以直接指定dba offset,也可以直接使用当前的dba offset。我们可以指定example按照不同的格式显示数据块数据,其中比较有意义的是我们可以使用example来查看数据记录。如下所示:Switch Display format
/b B1 .ub1(byte)
/w B4,ub4 (word)
/l B8,ub8 (long)(was b4/ub4 in oracle 7)
/r Oracle table/index row
数据表ta的结构和数据如下
SQL> desc scott.ta Name Null Type ----------------------------------------- -------- ---------------------------- ID NUMBER NAME VARCHAR2(10) RIQI DATE SQL> select * from scott.ta; ID NAME RIQI ---------- ---------- ------------------- 1 nnn 2014-10-07 13:19:00 2 b 2014-10-07 13:19:00 3 ss 2014-10-07 14:00:15 4 lll 2014-10-07 14:03:09使用bbed查看数据块数据:
BBED> map File: /home/app/oraten/oradata/oraten/tbs101.dbf (5) Block: 21 Dba:0x01400015 ------------------------------------------------------------ KTB Data Block (Table/Cluster) struct kcbh, 20 bytes @0 struct ktbbh, 72 bytes @20 struct kdbh, 14 bytes @100 struct kdbt[1], 4 bytes @114 sb2 kdbr[2] @118 ub1 freespace[8031] @122 ub1 rowdata[35] @8153 ub4 tailchk @8188 BBED> p *kdbr[0] rowdata[18] ----------- ub1 rowdata[18] @8171 0x2c BBED> x /rnct rowdata[18] @8171 ----------- flag@8171: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8172: 0x01 cols@8173: 3 col 0[2] @8174: 3 col 1[2] @8177: ss col 2[7] @8180: 2014-10-07 14:00:15 BBED> x /b rowdata[18] @8171 ----------- 0x2c BBED> x /h rowdata[18] @8171 ----------- 0x012c BBED> x /w rowdata[18] @8171 ----------- 0x0203012c BBED> x /l rowdata[18] @8171 ----------- 0x0203012c BBED> set offset 8153 OFFSET 8153 BBED> x /2rnct rowdata[0] @8153 ---------- flag@8153: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8154: 0x02 cols@8155: 3 col 0[2] @8156: 4 col 1[3] @8159: lll col 2[7] @8163: 2014-10-07 14:03:09 rowdata[18] @8171 ----------- flag@8171: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8172: 0x01 cols@8173: 3 col 0[2] @8174: 3 col 1[2] @8177: ss col 2[7] @8180: 2014-10-07 14:00:15Find
Find命令用来在数据块中查找数据,可以按照十进制、十六进制、八进制和字符格式进行查找,如
Switch Datatype/x Hexadecimal
/d Decimal
/u Unsigned decimal
/o Octal
/c Character(native)
注意:目前不支持数字和日期类型的查找方式
BBED> find /c n File: /home/app/oraten/oradata/oraten/tbs101.dbf (5) Block: 20 Offsets: 8151 to 8191 Dba:0x01400014 -------------------------------------------