Teradata jdbc executeBatch引发了一个奇怪的错误?

时间:2016-03-01 18:56:36

标签: java jdbc teradata

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

这是代码

    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();
                }

        }

但昨天同样的代码statred抛出一个错误。这是错误

    [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  

重复相同的东西,没有任何进一步的细节。我尝试将批量大小减少到最小值[{3}},但仍然没有结果。

可能导致此错误的原因是什么?如何克服它?

1 个答案:

答案 0 :(得分:1)

最近有同样的问题:

  1. 如果可以,请确定导致错误的最小数据子集
  2. 将代码修改为可选择启动而不进行批处理(不用于生产用途)
  3. 在我的情况下,它是一个单个数值,其精度高于插入的列,但通常该错误消息隐藏了您遇到的任何问题(字段太大?没有更多的磁盘空间? )