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 将批量大小减少到最小,但仍然没有结果。
什么可能导致此错误?如何克服呢?
最近有同样的问题:
- 如果可以,请找出导致错误的最小数据子集
- 修改代码以可选地启动而不进行批处理(不用于生产)
在我的例子中,它是一个单一的数值,其精度高于它插入的列,但通常该错误消息隐藏了您遇到的任何问题(字段太大?没有更多磁盘 space?)
我使用 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 将批量大小减少到最小,但仍然没有结果。
什么可能导致此错误?如何克服呢?
最近有同样的问题:
- 如果可以,请找出导致错误的最小数据子集
- 修改代码以可选地启动而不进行批处理(不用于生产)
在我的例子中,它是一个单一的数值,其精度高于它插入的列,但通常该错误消息隐藏了您遇到的任何问题(字段太大?没有更多磁盘 space?)