Bom dia a todos,
Essa sofri pra fazer, achei diferente, mas consegui, olhei alguns códigos , estudei e fiz perguntas , pedi ajuda para IA me explicar o que estava acontecendo, fui fuçando e saiu. O que embaralhou minha mente foi porque a função estava misturando coisas da tabela PRODUTO_EXERCICIO com coisas da tabela PRODUTO_VENDA_EXERCICIO, deu certo o código, mas ainda estou com um pouco de dúvida, se puderem me detalhar um pouco mais e se de fato o código está certo agradeço muito.
Segue abaixo:
CREATE OR REPLACE FUNCTION RETORNA_IMPOSTO
(p_CODIGO IN PRODUTO_EXERCICIO.COD%type)
RETURN PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%type
IS
v_CATEGORIA PRODUTO_EXERCICIO.CATEGORIA%type;
v_IMPOSTO PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%type;
BEGIN
v_CATEGORIA := UPPER(TRIM(RETORNO_CATEGORIA(p_CODIGO)));
IF v_CATEGORIA = 'SUCOS DE FRUTAS' THEN
v_IMPOSTO := 10;
ELSIF v_CATEGORIA = 'ÁGUAS' THEN
v_IMPOSTO := 20;
ELSIF v_CATEGORIA = 'MATE' THEN
v_IMPOSTO := 15;
ELSE v_IMPOSTO := 0;
END IF;
RETURN v_IMPOSTO;
END;
VARIABLE g_PERCENTUAL_IMPOSTO NUMBER
EXECUTE :g_PERCENTUAL_IMPOSTO := RETORNA_IMPOSTO(67120)
PRINT G_PERCENTUAL_IMPOSTO;