Mysql - Retorno de valores Stored Procedures

1 resposta
B

Bom dia pessoal!

Estou com dificuldades para recuperar o valor de um variável de uma stored procedure.

Aqui vou exemplificar com o um exemplo simples:

A busca contará todos os registros da tabela “teste” e retornará a variável total

DELIMITER $$

DROP PROCEDURE IF EXISTS `teste`.`conta_teste`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `conta_teste`(OUT total INT)
BEGIN
 	SELECT count(id)
 	INTO total
 	FROM teste;
END$$

DELIMITER ;

Para recuperar a variável teste eu estou conseguindo apenas criando uma outra stored procedure:

DELIMITER $$

DROP PROCEDURE IF EXISTS `teste`.`teste`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `teste`()
BEGIN
 CALL  conta_teste(@total);
 SELECT @total AS  total_shipped;  
END$$

DELIMITER ;

Alguém sabe como eu recuperar o valor da variável “total”, sem ter que fazer essa segunda Stored Procedure?

Desde já agradeço a todos!

1 Resposta

drsmachado

Dentro do banco de dados?
Já pensou em utilizar um cursor?

DECLARE soma int;
DECLARE cursorRecebeTotal CURSOR FOR
CALL conta_teste(@total);

OPEN cursorRecebeTotal;
FETCH cursorRecebeTotal into soma;
CLOSE cursorRecebeTotal;

Outra possibilidade é trocar a primeira stored procedure por uma function…

Criado 13 de novembro de 2010
Ultima resposta 13 de nov. de 2010
Respostas 1
Participantes 2