Java 两个相关异常:计数字段不正确和精度值无效

Java 两个相关异常:计数字段不正确和精度值无效,java,jdbc,Java,Jdbc,我正在通过我编写的java程序运行一个大型数据集,以将数据从一个模式转换为另一个模式。程序成功迁移了97%的记录,但未能迁移3%的记录 3%的失败率似乎是由于两种异常类型的组合,这两种异常类型似乎都发生在相同的记录中。每个失败的记录似乎都会在一个或多个字段上引发无效的精度值异常,同时也会引发计数字段错误异常。我知道这一点,因为我在每行代码周围放置了try-catch块,并计算了结果 有人能告诉我如何处理这些异常,使剩下的3%的记录能够插入到目标数据库中吗? 以下是我的代码的相关摘要: try {

我正在通过我编写的java程序运行一个大型数据集,以将数据从一个模式转换为另一个模式。程序成功迁移了97%的记录,但未能迁移3%的记录

3%的失败率似乎是由于两种异常类型的组合,这两种异常类型似乎都发生在相同的记录中。每个失败的记录似乎都会在一个或多个字段上引发无效的精度值异常,同时也会引发计数字段错误异常。我知道这一点,因为我在每行代码周围放置了try-catch块,并计算了结果

有人能告诉我如何处理这些异常,使剩下的3%的记录能够插入到目标数据库中吗?

以下是我的代码的相关摘要:

try {
    myPreparedStatememt = destinationConn.prepareStatement(
        "INSERT INTO IntakeTable ("
        + "ClientNumber,Treatment,Agent)"
        + "VALUES (?, ?, ?)"
    );
} 
catch (Exception e) {e.printStackTrace();}
try {myPreparedStatememt.setInt(1, ClientNumber);} catch (Exception e) {e.printStackTrace();}
try {myPreparedStatememt.setString(2, strTreatment);}
catch (Exception e) {
    System.out.println("ClientNumber, strTreatment are: "+ClientNumber+", "+strTreatment);
    e.printStackTrace();}
try {myPreparedStatememt.setString(3, strAgent);} 
catch (Exception e) {
    System.out.println("ClientNumber, strAgent are: "+ClientNumber+","+strAgent);
    e.printStackTrace();}
try {myPreparedStatememt.executeUpdate();}
 catch (Exception e) {
    System.out.println("ClientNumber is: "+ClientNumber);
    e.printStackTrace();}  
还有其他字段,但几乎所有的无效精度值异常都由strAgent和strTreatment负责。每当抛出无效的精度值时,strAgent和strTreatment都为null。但是,在不引发任何异常的其他记录中,它们也通常为空


可以简单地将strAgent和strTreatment都设置为null,并将它们作为null值插入目标数据库。这样的解决方案将使我们能够保留来自其他变量的数据,为了简洁起见,我没有在上面列出这些变量

我认为您在setString方法中错误地键入了61。是不是应该是2和3而不是61和63?@Thuiya谢谢。我只是改变了。张贴中的示例代码是实际代码相关方面的摘要。61和63反映了实际上有大量字段的事实。我只是省略了其他的,因为只有这三个是相关的。看起来你在插入int和varchar。表列是否与插入的内容兼容?不能使用setInt方法插入双精度/浮点值