我有连接到远程 oracle 11g EE db 服务器的 java 代码。如果我在 sqlplus 中运行特定查询,它会返回一个结果
SQL> SELECT COURSENAME from COURSES where skillID=1;
COURSENAME
--------------------
basic
但是,如果我从下面的 java 代码运行相同的查询,它不会返回任何结果。我可以从 java 调试器中的变量中复制查询语法query
并在 oracle 上运行它,所以我知道查询没有语法问题。此外,它不是 SQL 异常或类未找到异常,因此它似乎正在成功运行查询——只返回零结果。
可能会发生什么?
private String getCourseForSkill(int skillID){
try{
Class.forName("oracle.jdbc.OracleDriver");
String query="SELECT COURSENAME from COURSES where skillID=" + skillID ;
con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
rs = stmt.executeQuery(query);
rs.next();
return rs.getString("COURSENAME");
}
catch (ClassNotFoundException ex){
System.out.println(ex.getMessage());
}
catch (SQLException ex) {
System.out.println(ex.getMessage());
}
return null;
}