【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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【BBED】使用bbed修改字元型別資料字元型別
- 【BBED】使用bbed 修改日期型別的資料型別
- oracle bbed修改資料塊的例子Oracle
- 【BBED】使用bbed恢復已經刪除的行資料
- bbed 之資料修改Ktbbh(Ktbbh資料)
- 【BBED】使用BBED修改資料檔案SCN,使該檔案從offline轉變為online
- 27_bbed實戰(1)_修改資料內容
- oracle bbed使用Oracle
- 【kingsql分享】使用BBED修改Oracle資料檔案頭推進SCNSQLOracle
- 使用BBED破壞資料(oracle11g)Oracle
- 使用DUMP資料塊與BBED檢視BLOCK對比資料庫修改時的SCNBloC資料庫
- [20140624]bbed修改資料記錄.txt
- BBED安裝使用
- 【BBED】使用bbed解決 the amount of space used is not equal to block sizeBloC
- 【BBED】BBED基礎知識
- 使用BBED修改檔案頭解決資料庫Open驗證問題(下)資料庫
- 使用BBED修改檔案頭解決資料庫Open驗證問題(上)資料庫
- [20190104]bbed手動修改資料.txt
- [20160526]bbed修改資料記錄(不等長).txt
- 使用BBED幫助理解Oracle資料塊結構Oracle
- Oracle bbed工具的使用Oracle
- [20180604]在記憶體修改資料(bbed).txt記憶體
- [20140624]bbed修改資料記錄(不等長).txt
- 使用bbed完成資料庫的不完全恢復資料庫
- 利用BBED修改資料塊SCN----極端環境下的資料恢復資料恢復
- BBED命令
- [20210906]bbed讀取資料塊(bbed-wrap.sh).txt
- bbed_recover:恢復資料塊資料庫資料庫
- 【BBED】Oracle bbed常用命令參考Oracle
- --bbed_recover:恢復資料塊資料庫(mybbed)資料庫
- bbed_recover:恢復資料塊資料庫(續)資料庫
- [20160405]bbed修改檔案頭.txt
- BBED簡介
- BBED學習
- bbed二(命令)
- bbed安裝
- BBED 修改oracle 資料檔案的 SCN 號來做資料庫不完全恢復。Oracle資料庫
- [20170419]bbed探究資料塊.txt