在MyEclipse上写Oracle的SQL语句报错

图片说明
这个项目本来是用MySQL的,我想改成Oracle,连接是连接上了,但是一使用insert就老报这个错误

public static void addA(String email, String pw, String name, String phone,
            String IDNumber) throws SQLException, ClassNotFoundException {
        String sql = "insert into admin(EMAIL,APW,ANAME,PHONE,IDNUMBER)" + "values(ADMIN_SEQ.nextval,?,?,?,?,?)";
        //"insert into admin values(?,?,?,?,?)";
        PreparedStatement ps = DataConnect.getCon().prepareStatement(sql);
        ps.setString(1, email);
        ps.setString(2, pw);
        ps.setString(3, name);
        ps.setString(4, phone);
        ps.setString(5, IDNumber);
        ps.executeUpdate(); 
        DataConnect.getCon().commit();

    }

5个回答

可以把表名改一下 试一试 我不是很确定 但可以试一下

数据库连接代码没写错吗?

qq_17595175
qq_17595175 应该是没有的 因为点第二次 数据居然是插入成功的
一年多之前 回复

你先把你的sql语句放到数据库里去运行一遍,能运行再写进代码里试试。感觉你的email那个不应该对应那个nextval吧。既然报错sql语句,你先在数据库运行一遍

public static void addA(String email, String pw, String name, String phone,
        String IDNumber) throws SQLException, ClassNotFoundException {
    String sql = "insert into admin(EMAIL,APW,ANAME,PHONE,IDNUMBER) values(?,?,?,?,?)";
    //"insert into admin values(?,?,?,?,?)";
    PreparedStatement ps = DataConnect.getCon().prepareStatement(sql);
    ps.setString(1, email);
    ps.setString(2, pw);
    ps.setString(3, name);
    ps.setString(4, phone);
    ps.setString(5, IDNumber);
    ps.executeUpdate(); 
    DataConnect.getCon().commit();

}

我改成这样的话也是报一样的错误

参数个数都没对上了,前面是5个,后面加上ADMIN_SEQ.nextval有6个了,你前面加上多一个应该就没问题了

zhongsan123
才沐木 回复qq_17595175: 你改成6个呢,就是前面加多一个
一年多之前 回复
qq_17595175
qq_17595175 我改成5个也是一样的结果
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问