Rows can be ignored or discarded rather than sent to the database if before/after filters are used in the replicat. This can cause the amount of data to be sent to the database to be reduced if certain data is not changed. This is of use in high volume instances where not all row changes are useful.
There are two parts to filter setup.
First, on the Oracle side, supplemental logging has to be enabled for all the columns you are going to use in the target table. The up side of this is that you won’t need to check if a column is present with your function.
add trandata tab8811s cols ( name, city, state)
Second, you need to compare before and after images with @streq. Here is a sample:
reperror 21000, discard
DISCARDFILE e:\gg\teradata\discards\r8811.txt, PURGE
TARGETDB vmprime_mzerger, USERID mzerger, PASSWORD mzerger
— if name and city are both unchanged, do not replicate update
((1 = @streq (before.name, name)) ) AND
((1 = @streq (before.city, city)) )