1. 现象
通过bbed对5号数据文件头进行更改时报错
BBED> modify x d6cd1500 offset 484
BBED-00209: invalid number (d6cd1500)
2. 原因
修改第1个字符大于8时,问题就出现,具体原因未查明。
3. 解决方法
采用两次修改解决
1) 修改前查看
BBED> d v dba 5,1 offset 484File: /oradata/rundba/rundba01.dbf (5)Block: 1 Offsets: 484 to 515 Dba:0x01400001-------------------------------------------------------7ac71500 00800000 2b88be3f 01000000 l z.......+..?....02000000 67020000 100012bd 02000000 l ....g...........<16 bytes per line>
2) 将首位d(14)更改为小于8的字符,后面内容不变,尝试修改,即将d6cd1500先修改为76cd1500
BBED> modify x 76cd1500 offset 484File: /oradata/rundba/rundba01.dbf (5)Block: 1 Offsets: 484 to 515 Dba:0x01400001------------------------------------------------------------------------76cd1500 00800000 2b88be3f 01000000 02000000 67020000 100012bd 02000000<32 bytes per line>
3) 修改首位在内的4位内容
即将76cd修改为d6cd
BBED> modify x d6cd dba 5,1 offset 484File: /oradata/rundba/rundba01.dbf (5)Block: 1 Offsets: 484 to 515 Dba:0x01400001------------------------------------------------------------------------d6cd1500 00800000 2b88be3f 01000000 02000000 67020000 100012bd 02000000<32 bytes per line>
4) 查看结果已经修改为d6cd1500
BBED> d v dba 5,1 offset 484File: /oradata/rundba/rundba01.dbf (5)Block: 1 Offsets: 484 to 515 Dba:0x01400001-------------------------------------------------------d6cd1500 00800000 2b88be3f 01000000 l ........+..?....02000000 67020000 100012bd 02000000 l ....g...........<16 bytes per line>
4. 其它方法
如果是单个属性值,可以采用16进行直接进行修改,如
BBED> assign kcvfh.kcvfhckp.kscnbas=0xc015cdd6
但kscnbas不能直接修改,修改会报BBED-00451错误。
BBED> p kcvfh.kcvfhckp.kscnbasBBED-00451: (kscnbas) is not a member of structure (kcvcp)
kscnbas只能通过kcvcpscn查看,则建议采用上述步骤3的方式进行更改。
BBED> p kcvfh.kcvfhckp.kcvcpscnstruct kcvcpscn, 8 bytes @484ub4 kscnbas @484 0x0015cdd6ub2 kscnwrp @488 0x8000ub2 kscnwrp2 @490 0x0000
文章转载自rundba,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




