我有以下java代码,用于将值插入数据库
当我尝试下面的代码时,它起作用了。
st.executeUpdate("INSERT INTO USERT " + "VALUES ('1', 'Simpson', 'Mr', 'Springfield', '2001')");但是,当我尝试下面的代码时,我会得到一个错误
java.sql.SQLSyntaxErrorException: ORA-00911:无效字符
st.executeUpdate("INSERT INTO USERT (`USERID`, `FIRSTNAME`,`LASTNAME`,`EMAIL`,`PHONE`) VALUES ('2', 'james', 'john', 'myemail', 'myphone')");在堆栈溢出时,这里提供的大多数答案都涉及分号;的字符错位。link 1,link 2,link 3,似乎对我没有帮助
这是我们班的全部代码
package dbproject;
import java.sql.*;
public class jdbcconnection {
public static void main(String[] args) {
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
java.sql.Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","data1","mypass");
Statement st=con.createStatement();
st.executeUpdate("INSERT INTO USERT (`USERID`, `FIRSTNAME`,`LASTNAME`,`EMAIL`,`PHONE`) VALUES ('2', 'james', 'john', 'myemail', 'myphone')");
//st.executeUpdate("INSERT INTO USERT " + "VALUES ('1', 'Simpson', 'Mr', 'Springfield', '2001')");
con.close();
}
catch(Exception e){
System.out.println(e);
}
}
}我的执行查询可能出了什么问题,还有什么会导致错误?
发布于 2016-08-15 12:39:07
MySQL和甲骨文在标识符的定义上有一些细微的区别。在MySQL中,未引号标识符可以以数字开头,引用标识符中允许双引号;但是,在Oracle标识符中不允许使用这两种标识符。在MySQL中,引号字符是backtick (`)。如果设置了SQL模式ANSI_QUOTES,也可以使用双引号来引用标识符。在Oracle中,标识符使用双引号引用。
尝试;
st.executeUpdate("INSERT INTO USERT (USERID, FIRSTNAME,LASTNAME,EMAIL,PHONE) VALUES ('2', 'james', 'john', 'myemail', 'myphone')");https://stackoverflow.com/questions/38955102
复制相似问题