Segue minha resolução:
CREATE OR REPLACE PROCEDURE SOMA_VENDAS_CURSOR_WHILE
(
p_VENDA_LIMITE IN produto_venda_exercicio.valor_total%TYPE,
p_ID_RETORNO OUT produto_venda_exercicio.id%TYPE
)
IS
CURSOR cur_VENDA IS
SELECT ID, VALOR_TOTAL
FROM PRODUTO_VENDA_EXERCICIO;
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;
BEGIN
OPEN cur_VENDA;
FETCH cur_VENDA INTO v_ID, v_VALOR_TOTAL;
WHILE cur_VENDA%FOUND LOOP
v_VENDA_TOTAL := v_VENDA_TOTAL + v_VALOR_TOTAL;
IF v_VENDA_TOTAL >= p_VENDA_LIMITE THEN
EXIT;
END IF;
FETCH cur_VENDA INTO v_ID, v_VALOR_TOTAL;
END LOOP;
CLOSE cur_VENDA;
p_ID_RETORNO := v_ID;
END;
/