Descreva o objetivo do procedure: # Criar procedimento que exibe a soma da quantidade de gatos , utilizando duas raças.
DELIMITER $$
CREATE PROCEDURE sp_quantidade_animais_por_raca(var_raca1 VARCHAR(30), var_raca2 VARCHAR(30))
BEGIN
DECLARE quantidade INT;
DECLARE var_raca VARCHAR(30);
DECLARE qnt_animais_raca1, qnt_animais_raca2 INT DEFAULT 0;
DECLARE animais_cursor CURSOR FOR
SELECT raca
FROM animais;
OPEN animais_cursor;
SELECT COUNT(*) INTO quantidade FROM animais;
WHILE (quantidade > 0) DO
FETCH animais_cursor INTO var_raca;
IF (var_raca = var_raca1) THEN
SET qnt_animais_raca1 = qnt_animais_raca1 + 1;
ELSEIF (var_raca = var_raca2) THEN
SET qnt_animais_raca2 = qnt_animais_raca2 + 1;
END IF;
SET quantidade = quantidade - 1;
END WHILE;
SELECT (qnt_animais_raca1 + qnt_animais_raca2) AS total_animais;
CLOSE animais_cursor;
END $$
DELIMITER ;
CALL sp_quantidade_animais_por_raca('Persa', 'Siames');
CALL sp_quantidade_animais_por_raca('Persa', 'Persa');
CALL sp_quantidade_animais_por_raca('Siames', 'Siames');
O objetivo do procedimento descrito é exibir a soma da quantidade de gatos de duas raças específicas. O procedimento recebe como parâmetros as duas raças (var_raca1 e var_raca2) e utiliza um cursor para percorrer a tabela "animais" e contar quantos gatos pertencem a cada uma das raças. Em seguida, o procedimento retorna a soma das quantidades de gatos das duas raças.
Para escrever sua resposta aqui, entre ou crie uma conta
Sistema Gerenciador de Banco de Dados
Compartilhar