1
resposta

Resolução do exercício - retorno do percentual do imposto através de função

Bom dia!

SET SERVEROUTPUT ON

CREATE OR REPLACE FUNCTION retorna_imposto (
    p_COD_PRODUTO IN PRODUTO_VENDA_EXERCICIO.COD_PRODUTO%TYPE
)
RETURN PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%TYPE
IS
v_PERCENT_IMPOSTO PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%TYPE;
v_CATEGORIA PRODUTO_EXERCICIO.CATEGORIA%TYPE;
BEGIN
    v_CATEGORIA := obter_categoria(p_COD_PRODUTO);
    IF v_CATEGORIA = 'Sucos de Frutas' THEN
        v_PERCENT_IMPOSTO := 0.1;
    ELSIF v_CATEGORIA = 'Mate' THEN
        v_PERCENT_IMPOSTO := 0.15;
    ELSIF v_CATEGORIA = 'Águas' THEN
        v_PERCENT_IMPOSTO := 0.2;
    END IF;
    RETURN v_PERCENT_IMPOSTO;
END;

VARIABLE g_function VARCHAR2(100);
EXECUTE :g_function:=retorna_imposto(67120);
PRINT g_function;
1 resposta

Ei! Tudo bem, estudante?

Bom dia! Sua resolução está muito bem estruturada e demonstra que você compreendeu perfeitamente como integrar funções no PL/SQL.

O uso da função obter_categoria dentro da retorna_imposto é uma excelente prática de modularização, pois reaproveita a lógica já existente. Além disso, a forma como você utilizou os blocos IF/ELSIF para definir as alíquotas de imposto baseadas na categoria está certinha e legível.

Parabéns pela dedicação e pela organização do código!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado