首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.sql.SQLSyntaxErrorException: ORA-00911:无效字符

问java.sql.SQLSyntaxErrorException: ORA-00911:无效字符
EN

Stack Overflow用户
提问于 2016-08-15 12:28:34
回答 1查看 3K关注 0票数 0

我有以下java代码,用于将值插入数据库

当我尝试下面的代码时,它起作用了。

代码语言:javascript
复制
st.executeUpdate("INSERT INTO USERT " +  "VALUES ('1', 'Simpson', 'Mr', 'Springfield', '2001')");

但是,当我尝试下面的代码时,我会得到一个错误

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

代码语言:javascript
复制
st.executeUpdate("INSERT INTO USERT (`USERID`, `FIRSTNAME`,`LASTNAME`,`EMAIL`,`PHONE`) VALUES ('2', 'james', 'john', 'myemail', 'myphone')");

在堆栈溢出时,这里提供的大多数答案都涉及分号;的字符错位。link 1,link 2,link 3,似乎对我没有帮助

这是我们班的全部代码

代码语言:javascript
复制
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);

        }
    }
}

我的执行查询可能出了什么问题,还有什么会导致错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-15 12:39:07

MySQL和甲骨文在标识符的定义上有一些细微的区别。在MySQL中,未引号标识符可以以数字开头,引用标识符中允许双引号;但是,在Oracle标识符中不允许使用这两种标识符。在MySQL中,引号字符是backtick (`)。如果设置了SQL模式ANSI_QUOTES,也可以使用双引号来引用标识符。在Oracle中,标识符使用双引号引用。

compared.htm#i1026354

尝试;

代码语言:javascript
复制
   st.executeUpdate("INSERT INTO USERT (USERID, FIRSTNAME,LASTNAME,EMAIL,PHONE) VALUES ('2', 'james', 'john', 'myemail', 'myphone')");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38955102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档