我在Oracle中运行了以下语句:

SQL> CREATE TABLE MYLOG10G (COL1 NUMBER, COL2 VARCHAR2(20), COL3 DATE);
SQL> insert into mylog10g values (100, ‘Fangxin’, sysdate);
SQL> update mylog10g set col2=’FANGXIN’ where col1=100;
SQL> delete mylog10g where col1=100;
SQL> select object_id from dba_objects where object_name=’MYLOG10G’;

OBJECT_ID
———-
     10566

    我在MyLOG中试图解出原始的SQL:

LOG> extract start 2 table mylog10g
Start extract redo SQL …
RBA=0×000066.000000b7.0010,  XID=0×0005.005.00000092, RID=AAAClGAAEAAAAKGAAA
    INSERT INTO MYLOG10G ( COL1 , COL2 , COL3 ) VALUES (100,’Fangxin’,’2007-05-29 10:50:32′);

RBA=0×000066.000000ba.0010 LEN=0×0238 VLD=0x0d
    Chgid=1 Length=164, Piece=7
        Piece=2 Length=60, Size=60
        Piece=3 Length=20, Size=20
        Piece=4 Length=28, Size=28
        Piece=5 Length=2, Size=4
        Piece=6 Length=4, Size=4
        Piece=7 Length=8, Size=8
    Chgid=2 Length=60, Piece=2
        Piece=2 Length=32, Size=32
    Chgid=3 Length=72, Piece=4
        Piece=2 Length=20, Size=20
        Piece=3 Length=16, Size=16
        Piece=4 Length=4, Size=4
    Chgid=4 Length=204, Piece=9
        Piece=2 Length=20, Size=20
        Piece=3 Length=72, Size=72
        Piece=4 Length=2, Size=4
        Piece=5 Length=20, Size=20
        Piece=6 Length=28, Size=28
        Piece=7 Length=2, Size=4
        Piece=8 Length=4, Size=4
        Piece=9 Length=8, Size=8

RBA=0×000066.000000bc.0010,  XID=0×0009.02c.00000090, RID=AAAClGAAEAAAAKGAAA
    DELETE MYLOG10G WHERE  COL1 =  100 AND  COL2 =  ’FANGXIN’ AND  COL3 =  ’2007-05-29 10:50:32′;

    Update操作没被解出来, 原因呢, 是因为10g中这个Update有了新的记录类型.

LOG> oradump block 0xba
Start extract redo SQL …
RBA=0×000066.000000ba.0010 LEN=0×0238 VLD=0x0d
     Chgid=1 Length=164, Piece=7, OP=11.19
     Chgid=2 Length=60, Piece=2, OP=5.2
     Chgid=3 Length=72, Piece=4, OP=5.4
     Chgid=4 Length=204, Piece=9, OP=5.1

    做这个东东怎么就这么难呢?