Java 错误消息ORA-00933:SQL命令未正确结束

Java 错误消息ORA-00933:SQL命令未正确结束,java,sql,ora-00933,Java,Sql,Ora 00933,我对这种方法有一个问题: public void insertIntoQueue(DTOQueue dtoQueue) { DbConnection dbConnection = new DbConnection(); Connection conn; try { conn = dbConnection.coneccion(); String sql = " INSERT INTO PURE_ENC_QUEUE (queueId,queu

我对这种方法有一个问题:

public void insertIntoQueue(DTOQueue dtoQueue) { 
    DbConnection dbConnection = new DbConnection();
    Connection conn;
    try {
        conn = dbConnection.coneccion();
        String sql = " INSERT INTO PURE_ENC_QUEUE (queueId,queueName) values(?,?);";

        //creating PreparedStatement object to execute query
        PreparedStatement preStatement = conn.prepareStatement(sql);
        preStatement.setString(1, dtoQueue.getQueueId());
        preStatement.setString(2, dtoQueue.getQueueName());
        int result = preStatement.executeUpdate();

        DbConnection.closeConnection(conn);

        if(result > 0) {
            System.out.println("Insertado");
        } else {
            System.out.println("No insertado");
        }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println("done");
}
当我运行它时,抛出异常

java.sql.SQLException:ORA-00933:sql命令未正确结束


你知道这个问题吗?谢谢大家!

您需要删除查询字符串末尾的分号,即:

String sql = "INSERT INTO PURE_ENC_QUEUE (queueId,queueName) values(?,?)";

另外,重构代码以供使用也是一个好主意。

谢谢!但是,当我这样做时,行:PreparedStatement preStatement=conn.prepareStatement(sql);被阻止,程序不会继续,但也不会引发异常。但是当我在句子“INSERT INTO PURE_ENC_QUEUE(QUEUEID,QUEUENAME)VALUES('numevacolaid2','numevacolanombre2')”中使用字符串值进行测试时;,它起作用了。我打印带有vars值的行,并且有一个有效的值。这个问题不应该与建议的修复有关。您可以检查您的应用程序服务器/数据库是否有问题,或者尝试干净的安装/重新启动。谢谢!问题是由数据库生成的。当我从SQL开发人员那里查询时。如果这回答了您的问题,您可以使用勾号符号将答案标记为已接受。