essa foi a resolução da atividade que eu criei, porem ao conferir com a do professor me passou uma duvida, n sei se deixei isso passar em alguma aula, mas pq utilizar o cursor apenas para pegar o id e depois fazer outro select para pegar o valor_total?
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;
v_VALOR_TOTAL produto_venda_exercicio.valor_total%type;
v_VENDA_TOTAL produto_venda_exercicio.valor_total%type := 0;
cursor cur_vendas is select id,valor_total from PRODUTO_VENDA_EXERCICIO;
BEGIN
open cur_vendas;
loop
FETCH cur_vendas INTO v_ID, v_VALOR_TOTAL;
v_VENDA_TOTAL := v_VENDA_TOTAL+ v_VALOR_TOTAL;
if v_VENDA_TOTAL >= p_VENDA_LIMITE THEN
EXIT;
END IF;
EXIT WHEN cur_vendas%NOTFOUND;
END LOOP;
p_ID_RETORNO := v_ID;
close cur_vendas;
END;
alem disso o meu codigo parece ter algum erro de logica que eu n peguei, talvez seja justamente o problema do select, mas ao rodar como sugerido ele retorna 8 ao inver de 6 onde esta a minha falha?