I have developed an Informatica PowerDesigner 9.1 ETL Job which uses lookup and an update transform to detect if the target table has the the incoming rows from the source or not. I have set for the Update transform a condition
IIF(ISNULL(target_table_surrogate_id), DD_INSERT, DD_REJECT)
Now, when the incoming row is already in the target table, the row is rejected. Informatica writes these rejected rows into a .bad file. How to prevent this? Is there a way to determine that the rejected rows are not written into a .bad file? Or should I use e.g. a router insted of an update transform to determine if the row is insert row an then discard the other rows?
Put a filter transformation before the update strategy transformation and filter away the bad rows
Well, typically when we check for presence of a row in target, the decision is between insert and update, however, thats a business decision.
Till the time you are marking rows as dd_reject, they would be written to a bad file. Avoiding bad file can meqn mul6things here...
One, to not have the file created at all... use a filter to block the rows...you dont need update strategy for that...a simple filter should be good enough.
Second, if you want to process ur rows differently, dont mark them as reject, use a router and process them differently...
hope to help,
raghav
If you don't need rejected rows you can uncheck the option in update strategy "Forward rejected rows"
来源:https://stackoverflow.com/questions/16365488/informatica-writes-rejected-rows-into-a-bad-file-how-to-avoid-that