Ao invés de utilizar o IF
usei o END WHEN
. A resposta foi 6 quando rodei a procedure. Queria entender se é uma opção real de resposta neste exercício ou não...
Como fiz:
create or replace PROCEDURE SOMA_VENDAS_CURSOR_for
(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
FOR I IN CUR_VENDA
LOOP
V_ID := I.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;
EXIT WHEN v_VENDA_TOTAL >= p_VENDA_LIMITE;
END LOOP;
p_ID_RETORNO := v_ID;
END;