java.sql.SQLException:ORA-00917:在表中插入行时缺少逗号
嗯,我知道这是一个重复的问题,已经被问了很多次。但是,我仍然无法解决它。我已经检查了所有可能的错误,如空格、单引号,但它仍然不起作用。UserID和Password字段不能为空。从插入中删除类型定义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
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(?,?,?,?,?,?,?,?,?)";