Segue minha solução, um pouco diferente da solução do professor, usando case:
CREATE OR REPLACE FUNCTION RETORNA_IMPOSTO
(p_COD IN PRODUTO_VENDA_EXERCICIO.COD_PRODUTO%TYPE)
RETURN PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%type
IS
v_IMPOSTO PRODUTO_VENDA_EXERCICIO.PERCENTUAL_IMPOSTO%type;
v_CATEGORIA PRODUTO_EXERCICIO.CATEGORIA%type;
BEGIN
v_CATEGORIA := RETORNA_CATEGORIA(p_COD);
CASE TRIM(v_CATEGORIA)
WHEN 'Sucos de Frutas' THEN v_IMPOSTO := 10;
WHEN 'Águas' THEN v_IMPOSTO := 20;
WHEN 'Mate' THEN v_IMPOSTO := 15;
ELSE v_IMPOSTO := 0;
END CASE;
RETURN v_IMPOSTO;
END;