Olá, Luan! Parece que você já fez um bom trabalho com a procedure SOMA_VENDAS. Seu código está bem organizado e fácil de entender. 
A procedure que você criou está correta e deve funcionar conforme o esperado. Ela percorre a tabela PRODUTO_VENDA_EXERCICIO em ordem de ID, acumulando o VALOR_TOTAL de cada venda até que a soma acumulada seja maior ou igual ao p_VALOR_ESTIPULADO. Quando isso acontece, a procedure sai do loop e imprime o ID da última venda considerada e o valor acumulado.
Aqui está um exemplo de como você pode chamar a procedure:
BEGIN
   SOMA_VENDAS(20000);
END;
Nesse exemplo, estamos chamando a procedure SOMA_VENDAS com p_VALOR_ESTIPULADO igual a 20000. A procedure irá percorrer a tabela PRODUTO_VENDA_EXERCICIO e somar o VALOR_TOTAL de cada venda até que a soma seja maior ou igual a 20000. Então, ela imprimirá o ID da última venda considerada e o valor acumulado.
Espero ter ajudado e bons estudos!