解出Oracle日志文件中的Redo SQL语句之九

    初步完成了对Quick Multi-Insert操作的解释, 虽然在Oracle中是用一句话来进行Insert的, 但解出来时还是折分成一个一个的Insert语句了. 来看一下解出来的结果:

RBA=0x000069.0000008d.0010,  XID=0x0005.006.00000093
   RID=AAAClAAAEAAAAJ2AAA
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7369,'SMITH','CLERK',7902,'1980-12-17 00:00:00',800, NULL ,20);
   RID=AAAClAAAEAAAAJ2AAB
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7499,'ALLEN','SALESMAN',7698,'1981-02-20 00:00:00',1600,300,30);
   RID=AAAClAAAEAAAAJ2AAC
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7521,'WARD','SALESMAN',7698,'1981-02-22 00:00:00',1250,500,30);
   RID=AAAClAAAEAAAAJ2AAD
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7566,'JONES','MANAGER',7839,'1981-04-02 00:00:00',2975, NULL ,20);
   RID=AAAClAAAEAAAAJ2AAE
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7654,'MARTIN','SALESMAN',7698,'1981-09-28 00:00:00',1250,1400,30);
   RID=AAAClAAAEAAAAJ2AAF
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7698,'BLAKE','MANAGER',7839,'1981-05-01 00:00:00',2850, NULL ,30);
   RID=AAAClAAAEAAAAJ2AAG
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7782,'CLARK','MANAGER',7839,'1981-06-09 00:00:00',2450, NULL ,10);
   RID=AAAClAAAEAAAAJ2AAH
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7788,'SCOTT','ANALYST',7566,'1987-04-19 00:00:00',3000, NULL ,20);
   RID=AAAClAAAEAAAAJ2AAI
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7839,'KING','PRESIDENT', NULL ,'1981-11-17 00:00:00',5000, NULL ,10);
   RID=AAAClAAAEAAAAJ2AAJ
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7844,'TURNER','SALESMAN',7698,'1981-09-08 00:00:00',1500,0,30);
   RID=AAAClAAAEAAAAJ2AAK
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7876,'ADAMS','CLERK',7788,'1987-05-23 00:00:00',1100, NULL ,20);
   RID=AAAClAAAEAAAAJ2AAL
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7900,'JAMES','CLERK',7698,'1981-12-03 00:00:00',950, NULL ,30);
   RID=AAAClAAAEAAAAJ2AAM
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7902,'FORD','ANALYST',7566,'1981-12-03 00:00:00',3000, NULL ,20);
   RID=AAAClAAAEAAAAJ2AAN
   INSERT INTO EMP ( EMPNO , ENAME , JOB , MGR , HIREDATE , SAL , COMM , DEPTNO ) VALUES (7934,'MILLER','CLERK',7782,'1982-01-23 00:00:00',1300, NULL ,10);

    从数据库中查询出ROWID进行比对一下:

SQL> SELECT EMPNO,ROWID FROM ANYSQL.EMP;

     EMPNO ROWID
---------- ------------------
      7369 AAAClAAAEAAAAJ2AAA
      7499 AAAClAAAEAAAAJ2AAB
      7521 AAAClAAAEAAAAJ2AAC
      7566 AAAClAAAEAAAAJ2AAD
      7654 AAAClAAAEAAAAJ2AAE
      7698 AAAClAAAEAAAAJ2AAF
      7782 AAAClAAAEAAAAJ2AAG
      7788 AAAClAAAEAAAAJ2AAH
      7839 AAAClAAAEAAAAJ2AAI
      7844 AAAClAAAEAAAAJ2AAJ
      7876 AAAClAAAEAAAAJ2AAK
      7900 AAAClAAAEAAAAJ2AAL
      7902 AAAClAAAEAAAAJ2AAM
      7934 AAAClAAAEAAAAJ2AAN

    好象是对的了, 还留下一个已知的Quick Multi-Delete操作和未知类型的操作需要解释了.

留言 (1)

作者真是太厉害了,万分佩服,本人才疏学浅,能申请帮助测试吗?

发表留言: