1
resposta

[Dúvida] Resolução do exercício soma_valor

Fiz da seguinte forma porem nao está funcionando e também nao consegui encontrar o erro. create or replace function soma_valor( p_valor_limite in produto_venda_exercicio.valor_total%type) return integer is v_ponteiro integer := 1; v_valor produto_venda_exercicio.valor_total%type := 0; v_valor_total produto_venda_exercicio.valor_total%type :=0; v_limite integer := 1; v_valor_limite produto_venda_exercicio.valor_total%type :=0; begin select max(id) into v_limite from produto_venda_exercicio; for v_ponteiro in 1..V_Limite loop select valor_total into v_valor from produto_venda_exercicio where id = v_ponteiro; v_valor_total := v_valor_total+v_valor; if v_valor_total > p_valor_limite then exit; end if; end loop; return v_ponteiro; end soma_valor;

set serveroutput on; declare v_id integer := 0; begin v_id := soma_valor(20000); dbms_output.put_line(v_id); end;

O erro que ocorre é: Erro a partir da linha : 23 no comando - declare v_id integer := 0; begin v_id := soma_valor(20000); dbms_output.put_line(v_id); end; Relatório de erros - ORA-01422: a extração exata retorna mais do que o número solicitado de linhas ORA-06512: em "CURSOPLSQL.SOMA_VALOR", line 13 ORA-06512: em line 4 01422. 00000 - "exact fetch returns more than requested number of rows" *Cause: The number specified in exact fetch is less than the rows returned. *Action: Rewrite the query or change number of rows requested

1 resposta

Oii, Gustavo! Tudo bem?

Vi que nesse outro tópico , você compartilhou que encontrou a solução para o erro que estava tendo. Fico feliz por encontrar e agradeço por compartilhar com a comunidade.

Continue se dedicando aos estudos e qualquer dúvida, compartilhe no fórum.

Bons estudos, Gustavo!