I have established Asynchronous HotLog CDC in one of our testing database. I have done the following steps (as described in the Asynchronous HotLog CDC oracle documentation):
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER TABLE #SCHEMA#.#TABLE_NAME# ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
In addition, all of the other steps were followed for permissions, pool sizes, change set setup, change table setup, and so forth. This work is being done as a conversion from Synchronous to Asynchronous.
The issue encountered is that when characters that have a space (' '), it is substituted with a null and inserted into the CT table. I understand per documentation if the supplemental logging is not setup correctly, you can encounter nulls for values that remain static. The problem is this is occurring on our data inserts, with the correct supplemental logging on the table as per documentation.
Any suggestions are appreciated, DB is 220.127.116.11
Look for the CDC Demos here:
They are titled:
Change Data Capture - Synchronous Demo
Change Data Capture - Asynch HotLog Demo
Change Data Capture - Asynch AutoLog Demo
Thank you damorgan, your example was very thorough and helpful. Unfortunately though, after following your steps with my table I was testing, I am still receiving nulls where the insert statement had a space, besides that the asynchronous cdc process works fine.
It is almost like there is a trimming occurring when inserting into the change table, even though in the source table there is a space ' '. I might just need to stay with synchronous CDC because at least the trigger is capturing the correct change data, not sure why the Asynchronous would be different with the space becoming a null.