打印出来的sql,去数据库上执行下看看

解决方案 »

  1.   

    values中的“?”是preState.setString(1, "asda");来绑定参数的?
    不是age么?
      

  2.   

    哦哦,是的,之前调试不小心弄乱了,但是我现在把preState.setInt(1, 26);也不行啊还是出现那个错误
      

  3.   

    我打印出来是这样的:
    INSERT INTO person(pid,name,age,birthdat,salary) VALUES(2,'ad',?,to_date('1992-01-06','YYYY-MM-DD'),4532.0) 
    看不出有什么问题,而且当我把 ? 写成常量的时候,
    它是执行成功的,比喻我把sql写成
    String sql = "INSERT INTO person(pid,name,age,birthdat,salary) VALUES(2,'ad',26,to_date('1992-01-06','YYYY-MM-DD'),4532.0) ";
    当我用 ? 号替代的话,然后又在后面用上preState.setInt(1, 26);的话,就
    出现错误:ORA-01008: 并非所有变量都已绑定
      

  4.   

    终于明白了,原来是  preState.executeUpdate(sql);去掉括号中sql就行了,已经被覆盖了的说
      

  5.   

    类型转换放到外面来做,insert不会给你转换的
      

  6.   

    这个问题也遇到过,已经解决了,不是sql问题,终归是参数问题。
      

  7.   


    如果写成preState.execute(sql); 不是一样的么?为什么不行