El conjunto de resultados del procedimiento almacenado de Java JDBC llama a SqlServer está vacío

1. Problemas


Usando jdbc de Java para llamar al procedimiento almacenado SqlSever, el error se informa de la siguiente manera:

Obviamente, el error es que no se devuelve ningún conjunto de resultados. El código para llamar al procedimiento almacenado es el siguiente:

String sql = "exec  usp_HKY_LoadConfig '" + date + "'";
Statement ps = conn.createStatement();
ps.setQueryTimeout(queryTimeOut);
ResultSet rs = ps.executeQuery(sql);

while (rs.next()) {
              ...
}

dos, resuelve


El procedimiento almacenado utiliza una tabla temporal y rs siempre no tiene valor de retorno. ¿Por qué es esto? Aunque no se encontró directamente la causa, se encontró una solución. Agregue set nocount on y set nocount off al principio y al final del procedimiento almacenado

begin
    set nocount on
    
      ...
     set nocount off            
end

Añadido, el resultado se encontró perfectamente.

 

Supongo que te gusta

Origin blog.csdn.net/qq_35995514/article/details/128479416
Recomendado
Clasificación