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.
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


0