SQL Server - Valor devuelto por un procedimiento almacenado

 
Vista:

Valor devuelto por un procedimiento almacenado

Publicado por Juanma (2 intervenciones) el 16/10/2012 14:23:35
Muy buenas a todos,
tengo un problema al llamar a un procedimiento almacenado anidado. Intento explicarme.

Creamos un primer procedimiento:

create procedure proc_prueba1 as
select 'valor devuelto prueba1' as result

Creamos un segundo procedimiento que llama al primero:
create procedure proc_prueba2 as
declare @result1 nvarchar(50)
exec @result1 = proc_prueba1
select 'valor devuelto prueba2' as resultado

Si ahora desde java llamamos al segundo procedimiento:
rSet_source = stmt.executeQuery("exec proc_prueba2");
while (rSet_source.next()) {
resultado = rSet_source.getString("resultado");
}

nos da un error porque no encuentra la variable resultado de sql server. Y es debido a que si ejecutamos desde SQL el proc_prueba2, el resultado obtenido es:
result
valor devuelto prueba1
resultado
valor devuelto prueba2

con lo que el primer valor que encuentra java es result, y no resultado.
¿Como se puede hacer que el segundo procedimiento solo devuelva el segundo valor sin tener que modificar el primer procedimiento?

Gracias a todos de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Valor devuelto por un procedimiento almacenado

Publicado por Isaias (4558 intervenciones) el 16/10/2012 17:13:19
El segundo procedure, solo te devuelve un resultado, la combinacion de ambos, es que te devuelve 2 resultados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Valor devuelto por un procedimiento almacenado

Publicado por Juanma (2 intervenciones) el 16/10/2012 18:29:37
A eso me refiero. Que como me devuelve la combinación de ambos procedures, es decir, los 2 resultados, java sólo recoge el primer resultado, o sea result.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar