The OpenLogReplicator has been extended to support also OP code 11.11 – Insert Multiple Rows.
This type of redo record is used when an INSERT is used with a set of rows to be inserted. For example with INSERT … SELECT … .
Here is an example of usage. Let’s create a table:
CREATE TABLE SYSTEM.ADAM5(
A NUMERIC,
B NUMBER(10)
C NUMBER(10, 2),
D CHAR(10),
E VARCHAR2(10),
F TIMESTAMP,
G DATE
);
Next add to the CFG file in the tables section:
{"table": "SYSTEM.ADAM5"}
Next run OpenLogReplicator and execute some SQL:
INSERT INTO SYSTEM.ADAM5
SELECT OBJECT_ID, DATA_OBJECT_ID, 1.0, STATUS, STATUS, CREATED, CREATED FROM ALL_OBJECTS WHERE ROWNUM <= 2;
COMMIT;
The following JSON message is sent to Kafka:
{"scn": "8568574", dml: [
{"operation":"insert", "table": "SYSTEM.ADAM5", "after": {"A": "20","B": "2","C": "1","D": "VALID ","E": "VALID","F": "2018-07-29T21:16:55","G": "2018-07-29T21:16:55"}},
{"operation":"insert", "table": "SYSTEM.ADAM5", "after": {"A": "46","B": "46","C": "1","D": "VALID ","E": "VALID","F": "2018-07-29T21:16:55","G": "2018-07-29T21:16:55"}}
]
I have just adjusted the formatting to make the JSON more readable. This is exactly what is expected. This functionality is available with the latest build (0.0.5). Stay tuned for next OP codes to be implemented too.