![](/img/trans.png)
[英]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.