I have a Talend job that is using JDBC to connect to Teradata. I think the driver being used is 13.00.00.27 and I know the Teradata system I am connecting to is 12.00.1.29
I think only the top most generic error message is being passed from the Teradata driver to Talend for all errors that are being returned:
[Teradata JDBC Driver] [TeraJDBC 13.00.00.16] [Error 1338] [SQLState HY000] A failure occurred while executing a PreparedStatement batch request. Details of the failure can be found in the exception chain that is accessible with getNextException.
Shouldn’t the 13.0 driver be backward compatible for 12.0?
No, the exception message indicates that you are using Teradata JDBC Driver version 13.00.00.16.
>>> Shouldn’t the 13.0 driver be backward compatible for 12.0?
Yes, Teradata JDBC Driver 13.0 is compatible with Teradata Database 12.0.
>>> only the top most generic error message is being passed from the Teradata driver to Talend
No, all the batch errors are available.
The Teradata JDBC Driver throws BatchUpdateException with error code 1338 to indicate that individual errors *are* available for each of the batched rows. The application (Talend, in this case) must obtain the update count array from BatchUpdateException.getUpdateCounts, and obtain the SQLException chain from BatchUpdateException.getNextException. There will be one SQLException in the SQLException chain for each non-successful row as indicated in the update count array.