簡體   English   中英

java.sql.SQLSyntaxErrorException:ORA-00911:無效字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM