[英]org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
[英]java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
我有以下用于将值插入数据库的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')");
堆栈溢出时,此处提供的大多数答案都涉及分号的字符错位;
。 即链接1 , 链接2 , 链接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);
}
}
}
我的执行查询可能有什么问题,还有什么可能导致错误?
MySQL和Oracle在标识符定义方面有一些细微的差别。 在MySQL中,未加引号的标识符可以以数字开头,并且在加引号的标识符中允许使用双引号。 但是,Oracle标识符中均不允许使用这些方法。 在MySQL中,引号字符是backtick
(`)。 如果设置了SQL模式ANSI_QUOTES,则也可以使用双引号将标识符引起来。 在Oracle中,标识符使用双引号引起来。
https://docs.oracle.com/cd/E12151_01/doc.150/e12155/oracle_mysql_compared.htm#i1026354
尝试;
st.executeUpdate("INSERT INTO USERT (USERID, FIRSTNAME,LASTNAME,EMAIL,PHONE) VALUES ('2', 'james', 'john', 'myemail', 'myphone')");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.