我需要使用Java从sql执行过程。
我已经在exec MyProcedure之类的sql管理中调用了我的过程,并且运行良好。 但是,当我在Java代码中使用它时,会出现错误:
该语句未返回结果集。
这是我的代码:
ResultSet rs = null;
PreparedStatement cs=null;
Connection conn=DbM.dbConnect();
try {
cs= conn.prepareStatement("exec MyProcedure ?,?,?");
cs.setEscapeProcessing(true);
cs.setQueryTimeout(90);
cs.setString(1, "1");
cs.setString(2, "2019-01-01");
cs.setString(3, "2019-02-02");
rs = cs.executeQuery();
ArrayList<Data> listaObjectX = new ArrayList<Data>();
while (rs.next()) {
Data to = new Data();
to.setEmployeNo(rs.getString(1));
to.setValidFrom(rs.getDate(2));
to.setValidTo(rs.getDate(3));
listaObjectX.add(to);
} } catch (SQLException se) {
System.out.println("Error al ejecutar SQL"+ se.getMessage());
se.printStackTrace();
throw new IllegalArgumentException("Error al ejecutar SQL: " + se.getMessage());
} finally {
try {
rs.close();
cs.close();
conn.close();;
} catch (SQLException ex) {
ex.printStackTrace();
}
}
运行代码时出现错误:
该语句未返回结果集。
任何想法如何解决此问题?
如果我输入cs = conn.prepareStatement(“ exec MyProcedure(?,?,?)”); 我收到错误消息
“ @ P0”附近的语法不正确
答案 0 :(得分:0)
如果此过程未返回结果,则应使用execute()而不是executeQuery(),后者应始终返回ResultSet。