Hi all, I need to skip rows on error in tOracleOutput component and in advance settings I unchecked the "Die on error" option. Then I tried inserting a record set. But this record set contains a row with the same primary key as one of the existing records in the table. I expected the job to skip that row and insert the other rows of the set. But I didnt notice that. Can anyone tell me the reason for this? Thanks.
As I figured out, Talend does not insert all the error-free rows in my records list. What it does is, it stops processing the records at the same point in both cases (ie, Die on error checked OR Die on error unchecked). The difference is, in the Die on error checked scenario, it rollbacks the changes. In Die on error unchecked scenario, it commits all the error-free rows up to that moment. So, in both cases all the rows after the point of failure are not committed to the database.
Please correct me if I am wrong. Thanks.
Hi, Have you checked direct Error records to some output using Reject link from tOracleOutput component... in this case, it would redirect all the error records to another output and continue with other records... This link is enabled when you de-select Batch Size option... Try this. Thanks Vaibhav
Hi Vaibhav, The thing is that my tOracleOutput component's action on data is 'Insert'. So I cannot use the reject link since it is disabled when I use the above option. Are there any other strategies to catch the rejected rows (in my case rows that create unique constraint violations). Thanks.
My 'Use an existing connection' option is unchecked. The Rejects link appear only when you switch to another 'Action on data' like 'Insert or update' or 'Update or insert' in 'tOracleOutput'.
This is not true... Which version of Talend you are using... there must be some problem in talend... Check the screenshot for Talend 5.3.0.xx. Action on Data is Insert and action on table is Default.
Talend team would test it for you...
thanks
Vaibhav