Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resolução da atividade

CREATE OR REPLACE PROCEDURE SOMA_VENDAS_CURSOR 
(p_VENDA_LIMITE IN produto_venda_exercicio.valor_total%type, p_ID_RETORNO OUT produto_venda_exercicio.id%type)
IS
   v_ID produto_venda_exercicio.id%type := 1;
   v_VALOR_TOTAL produto_venda_exercicio.valor_total%type;
   v_VENDA_TOTAL produto_venda_exercicio.valor_total%type := 0;
   CURSOR cur_VENDA IS SELECT ID FROM PRODUTO_VENDA_EXERCICIO;
BEGIN
   OPEN cur_VENDA;
   LOOP
      FETCH cur_VENDA 
        INTO v_ID;
      SELECT VALOR_TOTAL 
        INTO v_VALOR_TOTAL 
        FROM PRODUTO_VENDA_EXERCICIO 
        WHERE ID = v_ID;
      v_VENDA_TOTAL := v_VENDA_TOTAL + v_VALOR_TOTAL;
      IF v_VENDA_TOTAL >= p_VENDA_LIMITE THEN
         EXIT;
      END IF;
      EXIT WHEN cur_VENDA%NOTFOUND;
   END LOOP;
   CLOSE cur_VENDA;
   p_ID_RETORNO := v_ID;
END;
SET SERVEROUTPUT ON;
DECLARE
   v_NUM INTEGER;
BEGIN
   SOMA_VENDAS_CURSOR(20000, v_NUM);
   dbms_output.put_line(v_NUM);
END;

Resposta: 6.

2 respostas

Oi, Rafa! Como vai?

Peço desculpas por demorar a responder.

Analisei a solução que você compartilhou e é isso mesmo, mandou muito bem no desenvolvimento da atividade!

Continue sempre empenhado nos estudos. Em caso de dúvidas, fico à disposição para ajudar.

Um forte abraço.

solução!

Obrigado.