stmt.executeUpdate(String sql);
实现增、删、改的数据库操作

解决方案 »

  1.   

    我是这样写的:  String user_cd = "001";
      String user_name = "chen";
      String password = "chen";
              int i = stmt.executeUpdate(
                  "insert into orteus.user_mst (USER_CD,USER_NAME,PASSWORD,CREATED_DATE,MODIFY_COUNT) "+
                  "values ("+user_cd+","+user_name+","+password+","
                  +null+","+0+")");
            }
            catch (Exception ex) {
              ex.printStackTrace();
            }但是抛出异常:
    java.sql.SQLException: ORA-00984: ここでは列は使用できません。
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java) at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java) at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java) at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java) at dbAccess.main(dbAccess.java:59)
      

  2.   

    如果是null值,你拼写SQL的时候就不要插入那列了,就可以了
    如果是当前时间你就用SYSDATE或者TO_date()方法转换字符串
    insert into orteus.user_mst (USER_CD,USER_NAME,PASSWORD,CREATED_DATE,MODIFY_COUNT)               values ("+user_cd+","+user_name+","+password+",sysdate,"+0+")
      

  3.   

    你先把sql打印出来到sql/plus去执行看看 有没问题?
      

  4.   

    照xmvigour说得做吧,记住调试是程序员必须熟练的技能。
      

  5.   

    我写的语句肯定没问题,
    我用:
    ResultSet rset = stmt.executeQuery(
              "select * from ORTEUS.USER_MST");
    可以得到ResultSet,一点错误也没有,但是:
    String aaa = "test";
    ResultSet rset = stmt.executeQuery("select * from ORTEUS.USER_MST where USER_CD = "+aaa);
    就出错:
    java.sql.SQLException: ORA-00904: 列名が無効です。这是怎么回事?难道在stmt.executeQuery()方法里不能加参数吗?
      

  6.   

    USER_CD 是什么类型
    varchar2的话改成USER_CD = '"+aaa+"'");
      

  7.   

    是的 所以你把sql打印出来 就可以发现问题了
    为什么加了参数就不行 不试试在程序中拼出来的sql是不是对的
    有时候一下子就是判断不了 zhaoxichao(小西) 说的没错
      

  8.   

    to:zhaoxichao(小西)
    thank you !
    好用了!