Boa Tarde a todos,
Primeiramente corrigi o FOR , tratei a Interação 1 e 2 para que trouxessem corretamente os valores de fibonacci, caso fosse uma delas a escolhida pelo usuário, após isso fiz o FOR para quando a variável for maior que 2 fazer a contagem, iniciando o contador em 3, já que começa a partir da terceira interação o FOR.
CREATE OR REPLACE PROCEDURE NUMEROS_FIBONACCI (p_INTERACOES IN FLOAT, p_NUMEROFIBO OUT FLOAT)
IS
v_FIBO1 FLOAT := 0;
v_FIBO2 FLOAT := 1;
v_FIBO_ATUAL FLOAT := 0;
v_INTERACOES FLOAT := 1;
BEGIN
IF p_INTERACOES = 1 THEN
v_FIBO_ATUAL := 0;
ELSIF p_INTERACOES = 2 THEN
v_FIBO_ATUAL := 1;
ELSIF p_INTERACOES > 2 THEN
v_FIBO_ATUAL := 0;
FOR v_CONTADOR IN 3.. p_INTERACOES LOOP
v_FIBO_ATUAL := v_FIBO1 + v_FIBO2;
v_FIBO1 := v_FIBO2;
v_FIBO2 := v_FIBO_ATUAL;
END LOOP;
END IF;
p_NUMEROFIBO := v_FIBO_ATUAL;
END;
Após isso fiz os testes e os resultados , tanto das interações 1 e 2 quanto da 3 em diante foram corretos.
SET SERVEROUTPUT ON;
DECLARE
v_parametro_entrada FLOAT := 1;
v_resultado_saida FLOAT;
BEGIN
NUMEROS_FIBONACCI
(p_INTERACOES => v_parametro_entrada,
p_NUMEROFIBO => v_resultado_saida);
DBMS_OUTPUT.PUT_LINE('Posição na sequência: ' || v_parametro_entrada);
DBMS_OUTPUT.PUT_LINE('Número de Fibonacci: ' || v_resultado_saida);
END;