1
resposta

Procedure Final

USE `insight_places`;
DROP procedure IF EXISTS `insight_places`.`novosAlugueis_17`;
;

DELIMITER $$
USE `insight_places`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `novosAlugueis_17`(lista VARCHAR(255), vHospedagem VARCHAR(10),
 vDataInicio DATE, vDias INTEGER, vPrecoUnitario DECIMAL(10,2))
BEGIN
    DECLARE vClienteNome  VARCHAR(255);
    DECLARE fimCursor INTEGER DEFAULT 0;
    DECLARE vnome VARCHAR(255);
    DECLARE cursor1 CURSOR FOR SELECT nome FROM temp_nomes;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET fimCursor = 1;
    
    -- dropa e cria nova tabela temporaria
    
    DROP TEMPORARY TABLE IF EXISTS temp_nomes;
    CREATE TEMPORARY TABLE temp_nomes(nome VARCHAR(255));
    
    -- passa o conteudo da lista para a tabela temporaria
    
    CALL inclui_usuarios_lista_15(lista);
    
    -- inicia o cursor
    
    OPEN cursor1;
    FETCH cursor1 INTO vnome;
    WHILE fimcursor = 0 DO
        SET vClienteNome = vnome;
        CALL novoAluguel_14(vClienteNome,vHospedagem, vDataInicio, vDias, vPrecoUnitario);
        FETCH cursor1 INTO vnome;
    END WHILE;
    CLOSE cursor1;
    DROP TEMPORARY TABLE IF EXISTS temp_nomes;
END$$

DELIMITER ;
;

-- comando teste novosAlugueis_17

CALL novosAlugueis_17('Gabriel Carvalho,Erick Oliveira,Catarina Correia,Lorena Jesus', '8635', '2023-06-03', 7, 45);

SELECT * FROM reservas WHERE reserva_id IN ('10012', '10013', '10014', '10015');

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Ei! Tudo bem?

Parabéns por praticar a atividade, Ruthe, está certinho! Seu entendimento sobre a declaração de Handlers (CONTINUE HANDLER FOR NOT FOUND), cursores e o fluxo de iteração está no caminho certo.

Continue se dedicando aos estudos e qualquer dúvida, compartilhe.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!