SQl - ORA-00933错误

时间:2014-08-12 11:56:07

标签: java

我的代码是:

try {
    VenLabServComImp.initializepool();
    con = pool.getConnection();
    psmt = con.prepareStatement("select b.category_code,a.category_name " +
            "from IMAGING_SERVICE a ,OS_LABSERVICES_CATEGORY b" +
            "where a.category_code=b.category_code and b.USER_ID= ? and " +
            "b.hosp_id= ? and b.service_id= ? ");

    psmt.setInt(1, servProvId); 
    psmt.setInt(2, HospId);
    psmt.setInt(3, servId);
    rs   = psmt.executeQuery();

    while(rs.next()){

        listoutTstIdBean.setCatCode(String.valueOf(rs.getInt("category_code")));
        listoutTstIdBean.setCatNam(rs.getString("category_name"));      
    }
    rs.close();
    psmt.close();
    con.close();    
} catch (Exception excep){
    excep.printStackTrace();
}   

我收到错误

java.sql.SQLException: ORA-00933: SQL command not properly ended
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
    at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
    at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:582)
    at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
    at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

你必须在b(在“之前”和

之间添加一个空格

答案 1 :(得分:0)

替换

"from IMAGING_SERVICE a ,OS_LABSERVICES_CATEGORY b" +

"from IMAGING_SERVICE a ,OS_LABSERVICES_CATEGORY b " +

您的查询中缺少一个空格,这就是为什么会出现此异常

答案 2 :(得分:0)

当您尝试使用不合适的子句执行SQL语句时,通常会出现此错误。

尝试查看构造的SQL语句,看看是否有错误。你可以用....

System.out.println( "DEBUG: query: " + psmt.toString() );

在执行查询之前查看SQL是否形成没有任何问题。