Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.SQLException:ORA-00917:在表中插入行时缺少逗号_Java_Mysql_Oracle - Fatal编程技术网

java.sql.SQLException:ORA-00917:在表中插入行时缺少逗号

java.sql.SQLException:ORA-00917:在表中插入行时缺少逗号,java,mysql,oracle,Java,Mysql,Oracle,嗯,我知道这是一个重复的问题,已经被问了很多次。但是,我仍然无法解决它。我已经检查了所有可能的错误,如空格、单引号,但它仍然不起作用。UserID和Password字段不能为空。从插入中删除类型定义varchar2(10)等 String s1 = Fname.getText(); String s2 = Lname.getText(); String s3 = usr.getText(); String s4 = psswd.getText(); String s5 = Eml.getText

嗯,我知道这是一个重复的问题,已经被问了很多次。但是,我仍然无法解决它。我已经检查了所有可能的错误,如空格、单引号,但它仍然不起作用。UserID和Password字段不能为空。

从插入中删除类型定义
varchar2(10)

String s1 = Fname.getText();
String s2 = Lname.getText();
String s3 = usr.getText();
String s4 = psswd.getText();
String s5 = Eml.getText();
String s6 = sx.getText();
String s7 = DOB.getText();
String s8 = mob.getText();
String s9 = city.getText();

if((s3 != null) && (s4 != null))
    try
    {
        String query = "INSERT INTO SIGNUP " + "(F_NAME varchar2(10), L_NAME varchar2(10), USER_ID varchar2(10), PASSWD varchar2(15), EMAIL varchar2(30), SEX varchar2(7), DOB Date, MOB_NO varchar2(10), CITY varchar2(15))" + " VALUES(?,?,?,?,?,?,?,?,?)";
        String user = "system";
        String psswd = "sys123";
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        Class.forName("oracle.jdbc.driver.OracleDriver");
        connection = DriverManager.getConnection(url, user , psswd);
        //System.out.println(query);

        preparedStatement = connection.prepareStatement(query);
        preparedStatement.setString(1, s1);
        preparedStatement.setString(2, s2);
        preparedStatement.setString(3, s3);
        preparedStatement.setString(4, s4);
        preparedStatement.setString(5, s5);
        preparedStatement.setString(6, s6);
        preparedStatement.setString(7, s7);
        preparedStatement.setString(8, s8);
        preparedStatement.setString(9, s9);
        int temp = preparedStatement.executeUpdate();

        if (temp > 0)
        {
            String msg = "Congratulations! Registration Successful...";
            JOptionPane.showMessageDialog(b1, null, msg, temp);
        }
    }
    catch (Exception e) {
        // TODO: handle exception
        System.out.println(e.getMessage());
        e.printStackTrace();
    }

我建议这是一个更好的方法。如果您使用的是Java,为什么不使用实体JPA2.2呢。它将管理您的CRUD操作

那么连接操作的原因是什么呢?嗯,我是java的新手。所以,我对它不太了解。“缺少逗号错误”已解决,但出现了一个新的错误:“ORA-00904:“电子邮件”:无效标识符“(@AmirBuzoFinally,我知道了..E_-MAIL在Oracle中是一个保留关键字。因此,您需要更改名称。一个大的releif.:))如果您的答案有错误(E_-MAIL是一个保留字),请编辑您的答案以确保正确,以防有人找到它但没有阅读注释。
"INSERT INTO SIGNUP " + "(F_NAME, L_NAME, USER_ID ...)"
String query = "INSERT INTO SIGNUP " + "(F_NAME , L_NAME , USER_ID , PASSWD , E_MAIL, SEX , DOB Date, MOB_NO , CITY )" + " VALUES(?,?,?,?,?,?,?,?,?)";