We are using talend dynamic schema feature to define a schema for our sybase input table. What we have noticed is that talend throws a null pointer exception when a field's database type is numeric or decimal. And if we not using the dynamic schema we not getting that exception. If anyone using dynamic schema has ever come across the same issue or knows of a solution to this issue could kindly assist. Attached is a screen shot of the issue. Any assistance will be highly appreciated.
Thank you for the quick response.
Please see attached a screen shot for the dynamic field. Currently this is just a simple job that defines a dynamic schema type, retrieves data from sybase table and print the records in a tLogRow. However the bigger design of the job reads two sybase tables and compares their contents using a tmap and that all works up just fine if the neither of the tables has a numeric or decimal data type. If the data we attempting to retrieve has a numeric or decimal type this issue we are currently experiencing. And we do need to use the dynamic schema type since the final job must be able to read any table without having to re-define the schema manually / at design.
Okay, thanks. That helps.
First things first: have you checked the numeric data to see if it has any null values? That can cause this type of error. The solution is usually to use the IsNull() function (or the Talend equivalent: I ran into this problem in SQL Server) to return zero (or any other value, like "NA") instead of null.
Talend is a Java code generator, so a null pointer error means that it is trying to reference an object that doesn't exist. This usually means that the code at the point of the error "expects" the value to not be null, but owing to some unforeseen circumstance, it is (this can happen if upstream code fails to create an object: the object reference will be null, and when the downstream code tries to reference it, it throws a null pointer error).
So, first check the data for nulls, and if there are any, use a function to return a non-null value. Let me know what happens when you do that.