Criando a procedure
create or replace PROCEDURE SOMA_VENDAS 
(p_QUANT_VENDA_ATINGIDA 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;
BEGIN
   LOOP
      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_QUANT_VENDA_ATINGIDA THEN
         EXIT;
      END IF;
      v_ID := v_ID + 1;
   END LOOP;
   p_ID_RETORNO := v_ID;
END;
Executando a procedure
SET SERVEROUTPUT ON;
DECLARE
   v_NUM INTEGER;
BEGIN
   SOMA_VENDAS(20000, v_NUM);
   dbms_output.put_line('O limite atingido foi com '|| v_NUM || ' vendas');
END;
 
            