Skip to main content
Announcements
A fresh, new look for the Data Integration & Quality forums and navigation! Read more about what's changed.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Dynamic schema throws null pointer exception on db numeric or decimal data types

Hi There,

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.

 

Regards,

Labels (2)
3 Replies
Anonymous
Not applicable
Author

Can you post more information on the dynamic schema itself, and what the test job you wrote is doing? I have an idea what is going on, but I need more data to be sure.
Anonymous
Not applicable
Author

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. 

regards,

Samu


dynamic schema.PNG
Anonymous
Not applicable
Author

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.

 

David