`

转:Redo Level 11 - Table Operation (DML)

 
阅读更多

Redo Level 11 - Table Operation (DML)

This level includes all DML operations performed on table data, including INSERT, UPDATE and DELETE. Operations include:

These operations are described in more detail in the following sections. The full list of known operations in Oracle 10.2 is as follows:

 
Code Mnemonic Description
11.1 IUR Undo
11.2 IRP Insert Row Piece
11.3 DRP Delete Row Piece
11.4 LKR Lock Row
11.5 URP Update Row Piece
11.6 ORP Overflow Row Piece
11.7 MFC  
11.8 CFA  
11.9 CKI  
11.10 SKL  
11.11 QMI Insert Row Array
11.12 QMD Delete Row Array
11.14 DSC  
11.16 LMN  
11.17 LLB  
11.19 19 Update Row Array
11.20 SHK  
11.21 21  

Each operation operates on a single table block.

11.1 - Undo table operation

This operation is the undo for 11.2 (IRP), 11.3 (DRP) and 11.5 (URP) (and possibly other level 11 operations)

11.2 - Insert Row Piece (IRP)

This operation inserts a row piece into a table.

The following example was developed in Oracle 10.2.0.4 (Linux 32-bit)

Consider the following code:

  CREATE TABLE team
 (
   team_code VARCHAR2(3),
   team_name VARCHAR2(30),
   country_code VARCHAR2(3)
 );

 INSERT INTO team VALUES ('MCL','McLaren','GBR');
 COMMIT; 

Note that an initial row has been inserted into the table to simplify the redo log output

The statement:

  INSERT INTO team VALUES ('FER','Ferrari','ITA'); 

generates the following redo:

 CHANGE #1 TYP:2 CLS: 1 AFN:4 DBA:0x01001af0 OBJ:52432 SCN:0x0000.0012223a SEQ: 3 OP:11.2 KTB Redo op: 0x01 ver: 0x01 op: F xid: 0x0006.010.000001b1 uba: 0x008004f1.0151.0b KDO Op code: IRP row dependencies Disabled xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb itli: 2 ispac: 0 maxfr: 4858 tabn: 0 slot: 1(0x1) size/delt: 19 fb: --H-FL-- lb: 0x2 cc: 3 null: --- col 0: [ 3] 46 45 52 col 1: [ 7] 46 65 72 72 61 72 69 col 2: [ 3] 49 54 41 
  KTB Redo   op: 0x01 ver: 0x01   op: F xid: 0x0006.010.000001b1 uba: 0x008004f1.0151.0b 

See KTBRedo

  KDO Op code: IRP row dependencies Disabled 

IRP Operation code: Insert Row Piece

row dependencies specifies whether row dependencies are disabled (default) or enabled for this table

  xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb 

xtype transaction type. Can be XA, XR, CR or KDO_KDOM2

flags awaiting further information

bdba block DBA. Data block address of this block

hdba header DBA. Probably data block address of extent header

  itli: 2 ispac: 0 maxfr: 4858 

itli specifes the ITL slot number of the transaction performing the operation. In this example the row is locked by the transaction in the second ITL slot.

ispac awaiting further information

maxfr awaiting further information

  tabn: 0 slot: 1(0x1) size/delt: 19 

tabn specifies the table number. For non-clustered tables this will always be 0

slot specifies the slot number. Each block has an variable length array of slots. Each element in this array specifies the location of a row within the block. The first slot in the block is 0. In this example the row has been written to the second slot in the table (slot 1)

size/delt: specifies the change in size of the block. In this example, the size has increased by 19 bytes which consists of the following:

  • 3 bytes for the row header
  • 4 bytes for column 0 (1 length byte and 3 data bytes)
  • 8 bytes for column 1 (1 length byte and 7 data bytes)
  • 4 bytes for column 2 (1 length byte and 3 data bytes)
  fb: --H-FL-- lb: 0x2 cc: 3 

fb is the flag byte which contains eight bit flags with the following values:

 
Flag Description
K Cluster key
C Clustered row
H Head piece of row
D Deleted row
F First piece in row
L Last piece in row
P Previous row piece exists
N Next row piece exists

lb is the lock byte which specifies the transaction in the ITL table that is currently locking this row. In this example the row is locked by the transaction in the second ITL slot.

cc is the column count of the number of columns being inserted. In this example 3 column values are being inserted into the table.

  col 0: [ 3] 46 45 52 

Column 0 is the first column in the row. In this case the 3 byte VARCHAR2 value is 'FER'

  col 1: [ 7] 46 65 72 72 61 72 69 

Column 1 is the second column in the row. In this case the 7 byte VARCHAR2 value is 'FERRARI'

  col 2: [ 3] 49 54 41 

Column 2 is the third column in the row. In this case the 3 byte VARCHAR2 value is 'ITA' (Italy)

The above statement generated the following undo:

 CHANGE #4 TYP:0 CLS:28 AFN:2 DBA:0x008004f1 OBJ:4294967295 SCN:0x0000.00122119 SEQ: 1 OP:5.1
 ktudb redo: siz: 108 spc: 6734 flg: 0x0012 seq: 0x0151 rec: 0x0b
             xid: 0x0006.010.000001b1
 ktubl redo: slt: 16 rci: 0 opc: 11.1 objn: 52432 objd: 52432 tsn: 4
 Undo type: Regular undo Begin trans Last buffer split: No
 Temp Object: No
 Tablespace Undo: No
              0x00000000 prev ctl uba: 0x008004f1.0151.0a
 prev ctl max cmt scn: 0x0000.00121033 prev tx cmt scn: 0x0000.00121034
 txn start scn: 0x0000.00000000 logon user: 59 prev brb: 0 prev bcl: 0 KDO undo record:
 KTB Redo
 op: 0x03 ver: 0x01
 op: Z
 KDO Op code: DRP row dependencies Disabled
   xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb
 itli: 2 ispac: 0 maxfr: 4858
 tabn: 0 slot: 1(0x1)

11.3 - Delete Row Piece (DRP)

This operation deletes a row piece from a table

The following example was developed in Oracle 10.2.0.4 (Linux 32-bit)

Consider the following code:

  CREATE TABLE team
 (
   team_code VARCHAR2(3),
   team_name VARCHAR2(30),
   country_code VARCHAR2(3)
 );

 INSERT INTO team VALUES ('MCL','McLaren','GBR');
 INSERT INTO team VALUES ('FER','Ferrari','ITA');

 COMMIT; 

The statement:

  DELETE FROM team WHERE team_code = 'FER'; 

generates the following redo:

  CHANGE #1 TYP:2 CLS: 1 AFN:4 DBA:0x01001af0 OBJ:52432 SCN:0x0000.00123482 SEQ: 3 OP:11.3
   KTB Redo
   op: 0x11 ver: 0x01
   op: F xid: 0x0008.014.00000172 uba: 0x00800025.02bc.2a
   Block cleanout record, scn: 0x0000.0012348c ver: 0x01 opt: 0x02, entries follow...
 itli: 1 flg: 2 scn: 0x0000.00123482
 itli: 2 flg: 2 scn: 0x0000.00123473
 KDO Op code: DRP row dependencies Disabled
 xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb
 itli: 2 ispac: 0 maxfr: 4858
 tabn: 0 slot: 1(0x1)
 KTB Redo op: 0x011 ver: 0x01 op: F xid: 0x0008.014.00000172 uba: 0x00800025.02bc.2a 

See KTBRedo

  Block cleanout record, scn: 0x0000.0012348c ver: 0x01 opt: 0x02, entries follow... 

If the ITL has not been updated out since the last transaction changes where committed or rolled back then a block cleanout is performed

scn System change number of block cleanout. Format is wrap#.base#

ver Version number

opt Option number

  itli: 1 flg: 2 scn: 0x0000.00123482 

First ITL element being cleaned out.

itli ITL element number (1 based)

flg Flag

scn System Change Number of entry

  itli: 2 flg: 2 scn: 0x0000.00123473 

Second ITL element being cleaned out.

  KDO Op code: DRP row dependencies Disabled 

DRP Operation code: Dnsert Row Piece

row dependencies specifies whether row dependencies are disabled (default) or enabled for this table

  xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb 

xtype transaction type. Can be XA, XR, CR or KDO_KDOM2

flags awaiting further information

bdba block DBA. Data block address of this block

hdba header DBA. Probably data block address of extent header

  itli: 2 ispac: 0 maxfr: 4858 

itli specifes the ITL slot number of the transaction performing the operation. In this example the row is locked by the transaction in the second ITL slot.

ispac awaiting further information

maxfr awaiting further information

  tabn: 0 slot: 1(0x1) 

tabn specifies the table number. For non-clustered tables this will always be 0

slot specifies the slot number. Each block has an variable length array of slots. Each element in this array specifies the location of a row within the block. The first slot in the block is 0. In this example the row was written to the second slot in the table (slot 1)

The above statement generated the following undo:

  CHANGE #4 TYP:0 CLS:32 AFN:2 DBA:0x00800025 OBJ:4294967295 SCN:0x0000.001233e7 SEQ: 1 OP:5.1
   ktudb redo: siz: 188 spc: 1568 flg: 0x0012 seq: 0x02bc rec: 0x2a
 xid: 0x0008.014.00000172
 ktubl redo: slt: 20 rci: 0 opc: 11.1 objn: 52432 objd: 52432 tsn: 4
 Undo type: Regular undo Begin trans Last buffer split: No
 Temp Object: No
 Tablespace Undo: No
 0x00000000 prev ctl uba: 0x00800025.02bc.29
 prev ctl max cmt scn: 0x0000.0012205e prev tx cmt scn: 0x0000.00122072
 txn start scn: 0x0000.00000000 logon user: 59 prev brb: 8388625 prev bcl: 0 KDO undo record:
 KTB Redo
 op: 0x04 ver: 0x01
 op: L itl: xid: 0x0007.00f.0000013a uba: 0x0080012d.012a.1c
 flg: C--- lkc: 0 scn: 0x0000.00123473
 KDO Op code: IRP row dependencies Disabled
 xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb
 itli: 2 ispac: 0 maxfr: 4858
 tabn: 0 slot: 1(0x1) size/delt: 19
 fb: --H-FL-- lb: 0x0 cc: 3
 null: ---
 col 0: [ 3] 46 45 52
 col 1: [ 7] 46 65 72 72 61 72 69
 col 2: [ 3] 49 54 41 

11.4 - Select for Update

This operation locks a row to prevent updates by other transactions

The following example was developed in Oracle 10.2.0.4 (Linux 32-bit)

Consider the following code:

  CREATE TABLE team
 (
   team_code VARCHAR2(3),
   team_name VARCHAR2(30),
   country_code VARCHAR2(3)
 );

 INSERT INTO team VALUES ('MCL','McLaren','GBR');
 INSERT INTO team VALUES ('FER','Ferrari','ITA');

 COMMIT; 

The statement:

  SELECT * FROM team WHERE team_code = 'FER' FOR UPDATE; 

generates the following redo:

  CHANGE #1 TYP:2 CLS: 1 AFN:4 DBA:0x01001af0 OBJ:52432 SCN:0x0000.00123aab SEQ: 2 OP:11.4
   KTB Redo
   op: 0x11 ver: 0x01
   op: F xid: 0x0004.01e.00000145 uba: 0x00800725.0105.0e
   Block cleanout record, scn: 0x0000.00123b5e ver: 0x01 opt: 0x02, entries follow...
 itli: 2 flg: 2 scn: 0x0000.00123aab
 KDO Op code: LKR row dependencies Disabled
 xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb
 itli: 1 ispac: 0 maxfr: 4858
 tabn: 0 slot: 1 to: 1 
  KTB Redo   op: 0x011 ver: 0x01   op: F xid: 0x0004.01e.00000145 uba: 0x00800725.0105.0e 

See KTBRedo

  Block cleanout record, scn: 0x0000.00123b5e ver: 0x01 opt: 0x02, entries follow... 

If the ITL has not been updated out since the last transaction changes where committed or rolled back then a block cleanout is performed

scn System change number of block cleanout. Format is wrap#.base#

ver Version number

opt Option number

  itli: 2 flg: 2 scn: 0x0000.00123aab 

First ITL element being cleaned out - slot 2

itli ITL element number (1 based)

flg Flag

scn System Change Number of entry

  KDO Op code: LKR row dependencies Disabled 

LKR Operation code: Lock Row

row dependencies specifies whether row dependencies are disabled (default) or enabled for this table

  xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb 

xtype transaction type. Can be XA, XR, CR or KDO_KDOM2

flags awaiting further information

bdba block DBA. Data block address of this block

hdba header DBA. Probably data block address of extent header

  itli: 1 ispac: 0 maxfr: 4858 

tli specifes the ITL slot number of the transaction performing the operation. In this example the row is locked by the transaction in the second ITL slot.

ispac awaiting further information

maxfr awaiting further information

  tabn: 0 slot: 1 to: 1 

abn specifies the table number. For non-clustered tables this will always be 0

slot specifies the slot number. Each block has an variable length array of slots. Each element in this array specifies the location of a row within the block. The first slot in the block is 0. In this example the row was written to the second slot in the table (slot 1)

to specifies whether the lock is being set (1) or released (0)

The above statement generated the following undo:

  CHANGE #4 TYP:0 CLS:24 AFN:2 DBA:0x00800725 OBJ:4294967295 SCN:0x0000.00123936 SEQ: 1 OP:5.1
 ktudb redo: siz: 132 spc: 4892 flg: 0x0012 seq: 0x0105 rec: 0x0e
             xid: 0x0004.01e.00000145
 ktubl redo: slt: 30 rci: 0 opc: 11.1 objn: 52432 objd: 52432 tsn: 4
 Undo type: Regular undo Begin trans Last buffer split: No
 Temp Object: No
 Tablespace Undo: No
              0x00000000 prev ctl uba: 0x00800725.0105.0d
 prev ctl max cmt scn: 0x0000.00122231 prev tx cmt scn: 0x0000.00122236
 txn start scn: 0x0000.00000000 logon user: 59 prev brb: 8388667 prev bcl: 0 KDO undo record:
 KTB Redo
 op: 0x04 ver: 0x01
 op: L itl: xid: 0x0001.003.00000155 uba: 0x00800688.016a.05
                       flg: C--- lkc: 0 scn: 0x0000.00123a9a
 KDO Op code: LKR row dependencies Disabled
   xtype: XA flags: 0x00000000 bdba: 0x01001af0 hdba: 0x01001aeb
 itli: 1 ispac: 0 maxfr: 4858
 tabn: 0 slot: 1 to: 0

11.5 - Update Row Piece (URP)

This operation updates a row piece in a table

The following example was developed in Oracle 10.2.0.4 (Linux 32-bit)

Consider the following code:

  CREATE TABLE team
 (
   team_code VARCHAR2(3),
   team_name VARCHAR2(30),
   country_code VARCHAR2(3)
 );


 CREATE UNIQUE INDEX team_pk ON team (team_code);


 INSERT INTO team VALUES ('MCL','McLaren','GBR');
 INSERT INTO team VALUES ('FER','Ferrari','ITA');
 INSERT INTO team VALUES ('RBR','Red Bull','RBR');

 COMMIT; 

Note that if there is not a unique index on this table, in Oracle 10.2.0.4 (at least) an 11.19 operation will be generated instead of a 11.5 operation.

The statement:

  UPDATE team SET country_code = 'OST' WHERE team_code = 'RBR'; 

generates the following redo:

 CHANGE #1 TYP:2 CLS: 1 AFN:4 DBA:0x01001af0 OBJ:52432 SCN:0x0000.00124511 SEQ: 1 OP:11.5 KTB Redo op: 0x11 ver: 0x01 op: F xid: 0x0001.012.00000154 uba: 0x00800687.016a.0e Block cleanout record, scn: 0x0000.00124514 ver: 0x01 opt: 0x02, entries follow...  itli: 2 flg: 2 scn: 0x0000.00124511 KDO Op code: URP row dependencies Disabled xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x01001af0 hdba: 0x01001aeb itli: 1 ispac: 0 maxfr: 4858 tabn: 0 slot: 5(0x5) flag: 0x2c lock: 1 ckix: 191 ncol: 3 nnew: 1 size: 0 Vector content: col 2: [ 3] 4f 53 54 
  KTB Redo   op: 0x011 ver: 0x01   op: F xid: 0x0001.012.00000154 uba: 0x00800687.016a.0e 

See KTBRedo

  Block cleanout record, scn: 0x0000.00124514 ver: 0x01 opt: 0x02, entries follow... 

If the ITL has not been updated out since the last transaction changes where committed or rolled back then a block cleanout is performed

scn System change number of block cleanout. Format is wrap#.base#

ver Version number

opt Option number

  itli: 2 flg: 2 scn: 0x0000.00124511 

First ITL element being cleaned out - slot 2

itli ITL element number (1 based)

flg Flag

scn System Change Number of entry

  KDO Op code: URP row dependencies Disabled 

URP Operation code: Update Row Piece

row dependencies specifies whether row dependencies are disabled (default) or enabled for this table

  xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x01001af0 hdba: 0x01001aeb 

xtype transaction type. Can be XA, XR, CR or KDO_KDOM2. In this case the transaction type is KDO_KDOM2. This structure can potentially store an array of change vectors for an object.

flags awaiting further information

bdba block DBA. Data block address of this block

hdba header DBA. Probably data block address of extent header

  itli: 1 ispac: 0 maxfr: 4858 

tli specifes the ITL slot number of the transaction performing the operation. In this example the row is locked by the transaction in the first ITL slot.

ispac awaiting further information

maxfr awaiting further information

  tabn: 0 slot: 5(0x5) flag: 0x2c lock: 1 ckix: 191 

abn specifies the table number. For non-clustered tables this will always be 0

slot specifies the slot number. Each block has an variable length array of slots. Each element in this array specifies the location of a row within the block. The first slot in the block is 0. In this example the row was written to the second slot in the table (slot 1)

flag awaiting further information

lock probably set to 1 indicating a lock has been taken on the row header

ckix awaiting further information

  ncol: 3 nnew: 1 size: 0 

ncol Number of columns in row piece

nnew Number of changed columns in row piece

size (Probably) change in size of row piece

  Vector content: 

Vector content: List of updated column values

  col 2: [ 3] 4f 53 54 

Update of column 2 (country_code) to 'OST'

The above statement generated the following undo:

 CHANGE #4 TYP:0 CLS:18 AFN:2 DBA:0x00800687 OBJ:4294967295 SCN:0x0000.00124487 SEQ: 1 OP:5.1 ktudb redo: siz: 152 spc: 6280 flg: 0x0012 seq: 0x016a rec: 0x0e xid: 0x0001.012.00000154 ktubl redo: slt: 18 rci: 0 opc: 11.1 objn: 52432 objd: 52432 tsn: 4 Undo type: Regular undo Begin trans Last buffer split: No Temp Object: No Tablespace Undo: No 0x00000000 prev ctl uba: 0x00800687.016a.0d prev ctl max cmt scn: 0x0000.00122c72 prev tx cmt scn: 0x0000.00122c86 txn start scn: 0x0000.00124511 logon user: 59 prev brb: 8390264 prev bcl: 0 KDO undo record: KTB Redo op: 0x04 ver: 0x01 op: L itl: xid: 0x0009.005.00000195 uba: 0x0080019a.0187.19 flg: C--- lkc: 0 scn: 0x0000.00124473 KDO Op code: URP row dependencies Disabled xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x01001af0 hdba: 0x01001aeb itli: 1 ispac: 0 maxfr: 4858 tabn: 0 slot: 5(0x5) flag: 0x2c lock: 0 ckix: 191 ncol: 3 nnew: 1 size: 0 Vector content: col 2: [ 3] 47 42 52 

11.11 - Array Insert

This operation inserts a set of rows into a table

The following example was developed in Oracle 10.2.0.4 (Linux 32-bit)

Consider the following code:

  CREATE TABLE team
 (
   team_code VARCHAR2(3),
   team_name VARCHAR2(30),
   country_code VARCHAR2(3)
 );

 INSERT INTO team VALUES ('MCL','McLaren','GBR');
 INSERT INTO team VALUES ('FER','Ferrari','ITA');
 COMMIT;


 CREATE TABLE team2
 (
   team_code VARCHAR2(3),
   team_name VARCHAR2(30),
   country_code VARCHAR2(3)
 );

 INSERT INTO team2 VALUES ('BMW','BMW','GER');
 INSERT INTO team2 VALUES ('WIL','Williams','GBR');
 INSERT INTO team2 VALUES ('REN','Renault','REN');

 COMMIT;

The statement:

  INSERT INTO team SELECT * FROM team2; 

generates the following redo:

  CHANGE #3 TYP:2 CLS: 1 AFN:4 DBA:0x01001b14 OBJ:52798 SCN:0x0000.00157cf0 SEQ: 1 OP:11.11
 KTB Redo
 op: 0x01 ver: 0x01
 op: F xid: 0x0007.01c.0000014c uba: 0x00800fc7.012f.14
 KDO Op code: QMI row dependencies Disabled
 xtype: XA flags: 0x00000000 bdba: 0x01001b14 hdba: 0x01001b13
 itli: 2 ispac: 0 maxfr: 4858
 tabn: 0 lock: 2 nrow: 3
 slot[0]: 2
 tl: 15 fb: --H-FL-- lb: 0x0 cc: 3
 col 0: [ 3] 42 4d 57
 col 1: [ 3] 42 4d 57
 col 2: [ 3] 47 45 52
 slot[1]: 3
 tl: 20 fb: --H-FL-- lb: 0x0 cc: 3
 col 0: [ 3] 57 49 4c
 col 1: [ 8] 57 69 6c 6c 69 61 6d 73
 col 2: [ 3] 47 42 52
 slot[2]: 4
 tl: 19 fb: --H-FL-- lb: 0x0 cc: 3
 col 0: [ 3] 52 45 4e
 col 1: [ 7] 52 65 6e 61 75 6c 74
 col 2: [ 3] 52 45 4e
  KTB Redo   op: 0x01 ver: 0x01   op: F xid: 0x0007.01c.0000014c uba: 0x00800fc7.012f.14 

See KTBRedo

  KDO Op code: QMI row dependencies Disabled 

QMI Operation code: Insert array of rows

row dependencies specifies whether row dependencies are disabled (default) or enabled for this table

  xtype: XA flags: 0x00000000 bdba: 0x01001b14 hdba: 0x01001b13 

xtype transaction type. Can be XA, XR, CR or KDO_KDOM2

flags awaiting further information

bdba block DBA. Data block address of this block

hdba header DBA. Probably data block address of extent header

  itli: 2 ispac: 0 maxfr: 4858 

itli specifes the ITL slot number of the transaction performing the operation. In this example the row is locked by the transaction in the second ITL slot.

ispac awaiting further information

maxfr awaiting further information

  tabn: 0 lock: 2 nrow: 3 

tabn specifies the table number. For non-clustered tables this will always be 0

lock possibly ITL slot holding the lock

nrow number of rows

  slot[0]: 2 

first row

  tl: 15 fb: --H-FL-- lb: 0x0 cc: 3 

tl total length (15 bytes = 3 bytes header + 3 length bytes + 9 data bytes)

fb flag byte

lb lock byte - rows locked in table header on this block only

cc column count

  col 0: [ 3] 42 4d 57 

Row 0 Column 0 - 3 bytes - BMW

  col 1: [ 3] 42 4d 57 

Row 0 Column 1 - 3 bytes - BMW

  col 2: [ 3] 47 45 52 

Row 0 Column 2 - 3 bytes - GER

  slot[1]: 3 

second row

  tl: 20 fb: --H-FL-- lb: 0x0 cc: 3 

tl total length (20 bytes = 3 bytes header + 3 length bytes + 14 data bytes)

fb flag byte

lb lock byte - rows locked in table header on this block only

cc column count

  col 0: [ 3] 57 49 4c 

Row 1 Column 0 - 3 bytes - WIL

  col 1: [ 8] 57 69 6c 6c 69 61 6d 73 

Row 1 Column 1 - 8 bytes - Williams

  col 2: [ 3] 47 42 52 

Row 1 Column 2 - 3 bytes - GBR

  slot[2]: 4 

third row

  tl: 19 fb: --H-FL-- lb: 0x0 cc: 3 

tl total length (19 bytes = 3 bytes header + 3 length bytes + 13 data bytes)

fb flag byte

lb lock byte - rows locked in table header on this block only

cc column count

  col 0: [ 3] 52 45 4e 

Row 2 Column 0 - 3 bytes - REN

  col 1: [ 7] 52 65 6e 61 75 6c 74 

Row 2 Column 1 - 7 bytes - Renault

  col 2: [ 3] 52 45 4e 

Row 2 Column 2 - 3 bytes - FRA

The above statement generated the following undo:

  CHANGE #2 TYP:0 CLS:30 AFN:2 DBA:0x00800fc7 OBJ:4294967295 SCN:0x0000.00157d25 SEQ: 1 OP:5.1
 ktudb redo: siz: 140 spc: 5916 flg: 0x0012 seq: 0x012f rec: 0x14
             xid: 0x0007.01c.0000014c
 ktubl redo: slt: 28 rci: 0 opc: 11.1 objn: 52798 objd: 52798 tsn: 4
 Undo type: Regular undo Begin trans Last buffer split: No
 Temp Object: No
 Tablespace Undo: No
              0x00000000 prev ctl uba: 0x00800fc7.012f.05
 prev ctl max cmt scn: 0x0000.0015760e prev tx cmt scn: 0x0000.00157655
 txn start scn: 0xffff.ffffffff logon user: 59 prev brb: 8392639 prev bcl: 0 KDO undo record:
 KTB Redo
 op: 0x03 ver: 0x01
 op: Z
 KDO Op code: QMD row dependencies Disabled
   xtype: XA flags: 0x00000000 bdba: 0x01001b14 hdba: 0x01001b13
 itli: 2 ispac: 0 maxfr: 4858
 tabn: 0 lock: 0 nrow: 3
 slot[0]: 2
 slot[1]: 3
 slot[2]: 4 

11.12 - Array Delete (undo only)

This operation deletes a set of rows from a table. Apparently this operation is only called by undo as the inverse operation to the 11.11 Array Insert operation.

分享到:
评论

相关推荐

    Python库 | redo-2.0.3-py2.py3-none-any.whl

    python库。 资源全名:redo-2.0.3-py2.py3-none-any.whl

    CAD快捷键大全-2011.pdf

    - REDO:重做 - TXTEXP:字体炸开 8. 其他常用快捷键: - CTRL+Z:取消 - CTRL+Y:重复 - W:存档 - F8:正交模式 - OP:环境设置 以上是AutoCAD快捷键大全中部分重要命令和功能的概述,熟练掌握这些快捷键...

    天正CAD快捷键总结.pdf

    - REDO - 重做操作。 - UNITS - 单位设置。 - DD - 设计中心。 4. 特殊快捷键及组合: - Ctrl+C:复制。 - Ctrl+V:粘贴。 - Ctrl+Z:撤销。 - Ctrl+Y:重做。 - F1 - F10:功能快捷键,具体功能依赖软件的...

    UG快捷键

    - Undo/Redo:撤销/重做 - Properties:查看对象属性 - Layers:管理图层 - Dimension Style:尺寸标注样式 8. 查找和帮助: - F1:打开帮助 - Find:查找功能或命令 9. 模型分析: - Section:创建截面...

    中望CAD快捷键命令大全.pdf

    - CTRL+Y:重做上一步操作(REDO) - CTRL+Z:撤销上一步操作(UCTRL+[Cancels) 2. 高级编辑快捷键 - CTRL+SHIFT+A:组合对象(Group) - CTRL+SHIFT+C:设置复制基点(copybase) - CTRL+SHIFT+S:另存为新...

    CAD快捷键(20211008084451).pdf

    5. Ctrl+Z、Ctrl+Y:分别用于撤销(Undo)和重做(Redo)上一步或上几步的操作。 6. Ctrl+Shift+字母键:如Ctrl+Shift+A用于对齐(Align),Ctrl+Shift+M用于打开选项(Options)。 7. Ctrl+1:打开属性面板...

    3D-Max快捷键大全.pdf

    - Redo Scene Operation(重做场景操作):CTRL+Y - Undo Viewport Operation(撤销视口操作):ALT+Z - Redo Viewport Op(重做视口操作):ALT+CTRL+Z 2. 视图与相机快捷键 - Zoom Extents(缩放至全部):...

    Angular中使用ng-zorro图标库部分图标不能正常显示问题

    ERROR Error: [@ant-design/icons-angular]: the icon redo-o does not exist or is not registered. at IconNotFoundError (ant-design-icons-angular.js:159) at MapSubscriber.project (ant-design-icons-angular...

    CAD左手键大全.pdf

    - `REDO`:重做 - `RENAME`:重命名对象 - `REGEN`:重新生成图形 - `VIEW`:创建视图 - `LEADER`:引出线 - `DDSELECT`:选择设置 了解并熟练掌握这些CAD快捷键可以极大地提高设计师的工作效率,减少重复的...

    CAD快捷键(新手必看).pdf

    - CTRL+Y (REDO): 重做上一步撤销的操作 还有使用F功能键进行操作的快捷键: - F1: 打开帮助 - F2: 文本窗口 - F3: 对象捕捉开关 - F4: 数字输入的三维切换 - F5: 等轴测模式开关 - F6: 坐标显示开关 - F7: 网格...

    CAD基本操作命令.pdf

    - **REDO**:重做上一步操作。 - **UNDO**:撤销上一步操作。 - **REDRAW**:重绘视图。 10. **其他命令**: - **ADCENTER**:管理设计中心。 - **PROPERTIES**:修改对象属性。 - **TOOLPALETTES**:管理...

    Eclipse快捷键大全及指南

    - **重做(Redo)**:Ctrl+Y **查看快捷键:** - **放大(Zoom In)**:Ctrl+= - **缩小(Zoom Out)**:Ctrl+- - **激活编辑器(Activate Editor)**:F12 **窗口快捷键:** - **切换编辑器(Switch Editor)**...

    2014CAD快捷键.pdf

    - REDO:重做被撤销的操作。 - SCALE:缩放对象。 - STRETCH:拉伸对象。 - T:创建文本。 - UNDO:撤销上一个命令。 - V:设置视图方向。 - WBLOCK:写入块文件。 - X:分解块或对象。 - Z:缩放视图以适应。 五、...

    STATSPACK report

    - **Snap Time**: 24-Nov-07 11:05:32 - **Sessions**: 103 - **Cursors per Session**: 2.0 - **结束快照**: - **Snap Id**: 9 - **Snap Time**: 24-Nov-07 12:00:01 - **Sessions**: 82 - **Cursors per ...

    cad左手键代码让你的cad操作速度上一个新的台阶

    - **RD,*REDO**:重做操作。 - **RE,*REGEN**:刷新屏幕。 - **SA,*SAVEAS**:另存为。 - **SV,*SAVE**:保存文件。 - **SD,*DDSELECT**:选择对象。 - **VW,*VIEW**:创建视图。 - **VV,*UNITS**:设置单位格式。 -...

    3DSmax命令翻译词典

    - **Redo(ָ)**:重做被撤销的操作。 - **XRefObjects(ⲿο)**:外部参考对象管理。 - **Clone()**:克隆对象。 - **XRefScenes(ⲿο)**:外部参考场景管理。 - **Delete(ɾ)**:删除选定的对象。 - **Merge...

    CCS快捷键操作(中文版).pdf

    - **Redo the last edit**:Ctrl+Y - **Undo the last edit**:Ctrl+Z 或 Alt+Backspace - **Tabs**:当选择多行时,将行向右移动一个制表位Tab;将行向左移动一个制表位Shift+Tab ### 文本滚动 - **Scroll text**...

    autocad 快捷方式

    - `REDO`:重做撤销的操作 - `H`:填充图案 - `RE`:重新生成图形 - `COPYLEFT`:镜像复制(左) - `COPYRIGHT`:镜像复制(右) 通过熟练掌握这些快捷键,可以显著提升AutoCAD使用者的工作效率,尤其是在处理...

    logic快捷键.pdf

    - Redo: [无快捷键] - 重做 - Cut: X - 剪切 - Copy: C - 复制 - Paste: V - 粘贴 - Select All: A - 全选 窗口管理相关快捷键: - Minimize Window: M - 最小化窗口 - Zoom Window: M - 缩放窗口 通道条设置复制...

    CAD大全符号.pdf

    - REDO: 重做上一步被撤销的操作。 - PURGE: 清除未使用的对象,如图层、块、线型等。 - INSERT: 插入块或外部参照。 - EXTEND: 扩展对象到边界。 - APPLOAD: 加载应用程序或命令。 5. 文本和尺寸标注 - STYLE: ...

Global site tag (gtag.js) - Google Analytics