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
Highlighted
Four Stars

Re: Can one find values of row in error?

have you tried using EReplace?