Teradata jdbc executeBatch 抛出一个奇怪的错误?

Teradata jdbc executeBatch throws a weird error?

我使用 jdbc 将原始数据集加载到 Teradata。直到最近,我一直在 PERFECT 工作。

这是代码

    try { 
        prst.executeBatch(); 
        } 
        catch (SQLException ex) {  
            System.out.println("Batch outside the loop error: ");
             while (ex != null)
                {
                    System.out.println(" Error code: " + ex.getErrorCode());
                    System.out.println(" SQL State: " + ex.getSQLState());
                    System.out.println(" Message: " + ex.getMessage());
                    ex.printStackTrace();
                    System.out.println();
                    ex = ex.getNextException();
                }

        }

但昨天同样的代码出现了错误。这是错误

    [Teradata JDBC Driver] [TeraJDBC 13.00.00.16] [Error 1339] [SQLState HY000] 
A failure occurred while executing a PreparedStatement batch request. 
The parameter set was not executed and should be resubmitted
 individually using the PreparedStatement executeUpdate method 

我使用 getNextException() 进行了检查,但我得到的只是相同的消息

A failure occurred while executing a PreparedStatement batch request. 
    The parameter set was not executed and should be resubmitted
     individually using the PreparedStatement executeUpdate method  

这是在重复同样的事情,没有任何进一步的细节。我试图按照建议 here 将批量大小减少到最小,但仍然没有结果。

什么可能导致此错误?如何克服呢?

最近有同样的问题:

  1. 如果可以,请找出导致错误的最小数据子集
  2. 修改代码以可选地启动而不进行批处理(不用于生产)

在我的例子中,它是一个单一的数值,其精度高于它插入的列,但通常该错误消息隐藏了您遇到的任何问题(字段太大?没有更多磁盘 space?)