Skip to main content

Test CDC

STEP 1 — Create a Test Table (Inside PDB)

Connect to Oracle inside the container:


docker exec -it oracle19c sqlplus PDBZIUM/StrongPassword@ORCLPDB1

Or:


docker exec -it oracle19c bash sqlplus pdbzium/StrongPassword@ORCLPDB1

Then create a test table:


CREATE TABLE demo_cdc ( id NUMBER PRIMARY KEY, name VARCHAR2(100) );

Insert initial data:


INSERT INTO demo_cdc VALUES (1, 'GK First Row'); COMMIT;

STEP 2 — Check the Kafka Topic List

On Kafka broker:


/opt/kafka/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

You should see something like:


oraclecdc.ORCLPDB1.PDBZIUM.DEMO_CDC oracle.schema-changes

STEP 3 — Consume the CDC Events

Open a consumer:


/opt/kafka/bin/kafka-console-consumer.sh \ --bootstrap-server localhost:9092 \ --topic oraclecdc.ORCLPDB1.PDBZIUM.DEMO_CDC \ --from-beginning

Keep this terminal open.


STEP 4 — Generate CDC Events in Oracle

Go back to SQLPlus:

Insert:


INSERT INTO demo_cdc VALUES (2, 'Second Row'); COMMIT;

Update:


UPDATE demo_cdc SET name='Updated Row' WHERE id=1; COMMIT;

Delete:


DELETE FROM demo_cdc WHERE id=2; COMMIT;

STEP 5 — Verify Events in Kafka Consumer

You should see JSON events like:

Insert event:


{ "op": "c", "after": { "ID": 1, "NAME": "GK First Row" } }

Update event:


{ "op": "u", "before": { "ID": 1, "NAME": "GK First Row" }, "after": { "ID": 1, "NAME": "Updated Row" } }

Delete event:


{ "op": "d", "before": { "ID": 2, "NAME": "Second Row" } }