问题描述:
这个sql放到plsql里可以正常执行,但是放到程序里执行的时候,我单步调试执行的时候,运行stmt.executeUpdate();这句的时候,就会抛出主键冲突的异常.奇怪的是,我如果直接运行程序,就可以正常执行。不会抛出任何异常
sql = "insert into B(Country_ID,CREATE_DATE,DATA_TIMES,COUNTRY_NAME, DATA_DATE) 
Select t.country_id,t.create_time,'"+ Data_Times+ "', t.country_name,'"+ Data_Date+ "' from f_country t";
log.info("执行sql-- " + sql + " ---");
stmt = conntect.prepareStatement(sql);
stmt.executeUpdate();好几天了。。求解啊大侠们

解决方案 »

  1.   

    主键冲突应该你是数据库里面的错误。你在PLSQL中不可能不报错·
    要不你将表的主键约束去掉·再去运行JAVA程序!
      

  2.   

    Select t.country_id,t.create_time,'"+ Data_Times+ "', t.country_name,'"+ Data_Date+ "' from f_country t"直接执行该句看看有没有重复的记录。如果有的话使用
    Select distinct t.country_id,t.create_time,'"+ Data_Times+ "', t.country_name,'"+ Data_Date+ "' from f_country t"
      

  3.   

    insert into B(Country_ID,CREATE_DATE,DATA_TIMES,COUNTRY_NAME, DATA_DATE)
    主键是Country_ID?
    如果提示主键冲突,那就真是主键重复了。
      

  4.   

    去掉主键之后是可以正常insert进去的。
    可是我在PLSQL里确实是没有报错。很纳闷
      

  5.   

    问题是,不在debug下单步调试的话,就可以正常执行,也不抛主键冲突的异常
      

  6.   

    您的方法我试过了。没有重复记录。
    我纳闷的是不在debug下单步调试的话,就可以正常执行,也不抛主键冲突的异常。一单步执行到最后一句立马就跳到catch里面。提示主键冲突