Can one find values of row in error?

One Star

Can one find values of row in error?

Hi,
I am copying data from Oracle to Informix. There are no special transforms, just copying columns "as is".
About half way down a 2M row table I get the following message. Is there any way for me to know
what are the column values of the offending row?
Thanks,
Lauri Pietarinen
Starting job smalltest at 23:49 04/04/2014.
connecting to socket on port 3566
connected
java.io.IOException: Code-set conversion function failed due to illegal sequence or invalid value.
at com.informix.lang.JavaToIfxType.doConversion(JavaToIfxType.java:845)
at com.informix.lang.JavaToIfxType.JavaToIfxChar(JavaToIfxType.java:145)
at com.informix.jdbc.IfxChar.fromString(IfxChar.java:291)
at com.informix.jdbc.IfxValue.a(IfxValue.java:981)
at com.informix.jdbc.IfxPreparedStatement.setString(IfxPreparedStatement.java:1460)
at exsmt_migration.smalltest_0_1.smalltest.tOracleInput_1Process(smalltest.java:4595)
at exsmt_migration.smalltest_0_1.smalltest.runJobInTOS(smalltest.java:5476)
at exsmt_migration.smalltest_0_1.smalltest.main(smalltest.java:5341)
Exception in component tInformixOutput_2
java.sql.SQLException: Encoding or code set not supported.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:407)
at com.informix.jdbc.IfxChar.fromString(IfxChar.java:299)
at com.informix.jdbc.IfxValue.a(IfxValue.java:981)
at com.informix.jdbc.IfxPreparedStatement.setString(IfxPreparedStatement.java:1460)
at exsmt_migration.smalltest_0_1.smalltest.tOracleInput_1Process(smalltest.java:4595)
at exsmt_migration.smalltest_0_1.smalltest.runJobInTOS(smalltest.java:5476)
at exsmt_migration.smalltest_0_1.smalltest.main(smalltest.java:5341)
1081179 milliseconds
disconnected
Job smalltest ended at 00:07 05/04/2014.
Seventeen Stars

Re: Can one find values of row in error?

Take a look at the code of the job in line 4595 and get an idea which column causes the problem. I guess it is a textual column. In the case you should check in which charset you have values in your Oracle db and what charsets the Informix database allows.
I guess it has to do with some UTF-8 violations.
I suggest you deactive die on error and extend the output component with a reject flow. This way you will get all datasets which could not be processed in your target database and you can plan your next steps.
One Star

Re: Can one find values of row in error?

Thanks jlolling,
I managed to trace down the illegal character, it was '?', the Euro-sign!
What would be the best way to convert '?' to something else, like '#'?
Probably a simple question, but I am on my second day using Talend...
Lauri
Four Stars

Re: Can one find values of row in error?

have you tried using EReplace?

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Best Practices for Using Context Variables with Talend – Part 4

Pick up some tips and tricks with Context Variables

Blog

How Media Organizations Achieved Success with Data Integration

Learn how media organizations have achieved success with Data Integration

Read

Downloads and Trials

Test drive Talend's enterprise products.

Downloads