【BBED】使用bbed修改數字型別資料
bbed的使用(一) 介紹了BBED的編譯安裝。
bbed的使用(二) 介紹了bbed的語法規則和常用命令的使用。
bbed的使用(三) 介紹了bbed的命令。
如何修改字元型別的資料,使用bbed修改資料表中字元型別的資料
下面介紹使用bbed修改數字型別資料
yangobj表是有scott下的emp經過CTAS建立。
修改前:
SQL> select * from yangobj;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ------------------------------ ---------- ---------- ------------------ ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
計劃對WARD的comm值500修改為800.
因為使用bbed修改資料時最好關閉資料庫。所以從另外的資料庫中查詢800,500在資料庫中的儲存。
yang@rac1>select dump(800,1016) FROM DUAL;
DUMP(800,1016)
-----------------
Typ=2 Len=2: c2,9
yang@rac1>select dump(500,1016) FROM DUAL;
DUMP(500,1016)
-----------------
Typ=2 Len=2: c2,6
使用bbed對資料
使用p 命令檢視杭記錄
BBED> p kdbr
sb2 kdbr[0] @142 8026
sb2 kdbr[1] @144 7983
sb2 kdbr[2] @146 7940
sb2 kdbr[3] @148 7899
sb2 kdbr[4] @150 7854
sb2 kdbr[5] @152 7813
sb2 kdbr[6] @154 7772
sb2 kdbr[7] @156 7732
sb2 kdbr[8] @158 7694
sb2 kdbr[9] @160 7651
sb2 kdbr[10] @162 7613
sb2 kdbr[11] @164 7575
sb2 kdbr[12] @166 7536
sb2 kdbr[13] @168 7497
檢視第三行WARD的資料。
BBED> p *kdbr[2]
rowdata[443]
------------
ub1 rowdata[443] @8064 0x2c
BBED> x /rnccntnnn
rowdata[443] @8064
------------
flag@8064: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8065: 0x00
cols@8066: 8
col 0[3] @8067: 7521
col 1[4] @8071: WARD
col 2[8] @8076: SALESMAN
col 3[3] @8085: 7698
col 4[7] @8089: 22-FEB-81
col 5[3] @8097: 1250
col 6[2] @8101: 500
col 7[2] @8104: 30
顯示資料庫中儲存的資料格式。
BBED> x /r
rowdata[443] @8064
------------
flag@8064: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8065: 0x00
cols@8066: 8
col 0[3] @8067: 0xc2 0x4c 0x16
col 1[4] @8071: 0x57 0x41 0x52 0x44
col 2[8] @8076: 0x53 0x41 0x4c 0x45 0x53 0x4d 0x41 0x4e
col 3[3] @8085: 0xc2 0x4d 0x63
col 4[7] @8089: 0x77 0xb5 0x02 0x16 0x01 0x01 0x01
col 5[3] @8097: 0xc2 0x0d 0x33
col 6[2] @8101: 0xc2 0x06
col 7[2] @8104: 0xc1 0x1f
BBED> set offset 8101
OFFSET 8101
BBED> dump /v offset 8101
File: /opt/oracle/oradata/orcl/users01.dbf (4)
Block: 396 Offsets: 8101 to 8191 Dba:0x0100018c
-------------------------------------------------------
02c20602 c11f2c00 0803c24b 6405414c l ......,....Kd.AL
4c454e08 53414c45 534d414e 03c24d63 l LEN.SALESMAN..Mc
0777b502 14010101 02c21102 c20402c1 l .w..............
1f2c0008 03c24a46 05534d49 54480543 l .,....JF.SMITH.C
4c45524b 03c25003 0777b40c 11010101 l LERK..P..w......
02c209ff 02c11502 06250c l .........%.
<16 bytes per line>
02 為列與列的間隔,所以再偏移一位(8bit)
BBED> dump /v offset 8102
File: /opt/oracle/oradata/orcl/users01.dbf (4)
Block: 396 Offsets: 8102 to 8191 Dba:0x0100018c
-------------------------------------------------------
c20602c1 1f2c0008 03c24b64 05414c4c l .....,....Kd.ALL
454e0853 414c4553 4d414e03 c24d6307 l EN.SALESMAN..Mc.
77b50214 01010102 c21102c2 0402c11f l w...............
2c000803 c24a4605 534d4954 4805434c l ,....JF.SMITH.CL
45524b03 c2500307 77b40c11 01010102 l ERK..P..w.......
c209ff02 c1150206 250c l ........%.
<16 bytes per line>
修改 c206-->c209
BBED> modify /x 0xc209
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /opt/oracle/oradata/orcl/users01.dbf (4)
Block: 396 Offsets: 8102 to 8191 Dba:0x0100018c
------------------------------------------------------------------------
c20902c1 1f2c0008 03c24b64 05414c4c 454e0853 414c4553 4d414e03 c24d6307
77b50214 01010102 c21102c2 0402c11f 2c000803 c24a4605 534d4954 4805434c
45524b03 c2500307 77b40c11 01010102 c209ff02 c1150206 250c
<32 bytes per line>
校驗並應用。
BBED> sum dba 4,396
Check value for File 4, Block 396:
current = 0x27cd, required = 0x28cd
BBED> sum dba 4,396 apply
Check value for File 4, Block 396:
current = 0x28cd, required = 0x28cd
重新顯示,500-->800
BBED> x /rnccntnnn
rowdata[443] @8064
------------
flag@8064: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8065: 0x00
cols@8066: 8
col 0[3] @8067: 7521
col 1[4] @8071: WARD
col 2[8] @8076: SALESMAN
col 3[3] @8085: 7698
col 4[7] @8089: 22-FEB-81
col 5[3] @8097: 1250
col 6[2] @8101: 800
col 7[2] @8104: 30
修改後,重新啟動資料庫檢視結果:
SQL> set linesize 120
SQL> select * from yangobj;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- --------------- ---------- ---------- ------------------ ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 800 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
14 rows selected.
注意:這裡500 和800都是佔有2byte,如果修改為888
yang@rac1>select dump(888,1016) FROM DUAL;
DUMP(888,1016)
--------------------
Typ=2 Len=3: c2,9,59
則佔用3個byte,查詢資料時會出現亂碼,
如何修改字元型別的資料中有提到。來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-704630/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20190104]bbed手動修改資料.txt
- 【BBED】使用BBED修改資料檔案SCN,使該檔案從offline轉變為online
- [20180604]在記憶體修改資料(bbed).txt記憶體
- 【kingsql分享】使用BBED修改Oracle資料檔案頭推進SCNSQLOracle
- 27_bbed實戰(1)_修改資料內容
- [20210906]bbed讀取資料塊(bbed-wrap.sh).txt
- [20181204]bbed修改問題.txt
- bbed修改undo段狀態
- 【BBED】BBED基礎知識
- [20190104]bbed手工插入資料.txt
- [20210318]bbed讀取資料塊.txt
- ORA-01190使用bbed強制online資料檔案
- 【BBED】Oracle bbed常用命令參考Oracle
- [20181227]bbed的使用問題.txt
- [20210901]cygwin下使用bbed.txt
- [20210303]bbed使用小問題.txt
- BBED 修改oracle 資料檔案的 SCN 號來做資料庫不完全恢復。Oracle資料庫
- [20210831]bbed讀取資料塊6.txt
- [20210930]bbed恢復刪除的資料.txt
- [20210323]bbed讀取資料塊5.txt
- [20210318]bbed讀取資料塊2.txt
- [20210319]bbed讀取資料塊3.txt
- [20210401]使用bbed讀取資料塊恢復注意6.txt
- [20181122]bbed人為修改事務提交標誌.txt
- Oracle 之利用BBED修改資料塊SCN----沒有備份資料檔案的資料恢復Oracle資料恢復
- BBED 的安裝
- [20210930]bbed讀取資料塊7 fffext.sh.txt
- BBED修復資料庫常用命令介紹資料庫
- Oracle redo解析之-2、BBED & DUMP工具使用Oracle Redo
- [20231109]bbed p命令dba引數問題.txt
- [20190213]學習bbed-恢復刪除的資料.txt
- [20220223]bbed讀取資料塊mssm與assm 2.txtSSM
- [20180619]bbed verify問題.txt
- [20231008]bbed探究lob段.txt
- oracle之 11.2.0.4 bbed安裝Oracle
- [20220223]bbed ktbbh.ktbbhict.txt
- [20210920]bbed的assign命令.txt
- [20210304]bbed的assign命令.txt
- [20190107]生成bbed執行指令碼:指令碼