我的代码是:
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
如何解决这个问题?
答案 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是否形成没有任何问题。