1
resposta

ERRO NA TRANSCRIAÇÃO - 5. USANDO PROCEDURES // 03.OBTENDO CAREGORIA : https://cursos.alura.com.br/course/oracle-pl-sql-procedures-funcoes-excecoes/task/110048

A TRANSCIÇÃO ESTÁ INCORRETA:

SET SERVEROUTPUT ON

DECLARE
    v_FATURAMENTO CLIENTE.FATURAMENTO_PREVISTO%type := 65000;
    v_CATEGORIA CLIENTE.CATEGORIA%type;
BEGIN
    IF v_FATURAMENTO <= 10000 THEN
        v_CATEGORIA := 'PEQUENO';
    ELSEIF v_FATURAMENTO <= 50000 THEN
        v_CATEGORIA := 'MÉDIO';
    ELSEIF v_FATURAMENTO <= 100000 THEN
        v_CATEGORIA := 'MÉDIO GRANDE';
    ELSE
        v_CATEGORIA := 'GRANDE';
    END IF;
    dbms_output.put_line('A Categoria é ' || v_CATEGORIA);
END;

O CORRETO SERIA ELSIF E NÃO ELSEIF CONFORME É FALADO EM AULA, PORÉM ESQUECERAM DE ALTERAR O TEXTO DA TRANSIÇÃO ENTÃO SE VOCÊ COPIAR A COLAR VAI DAR UM ERRO:

O CÓDIGO CORRETO SERIA O ABAIXO:

SET SERVEROUTPUT ON

DECLARE
    v_FATURAMENTO CLIENTE.FATURAMENTO_PREVISTO%type := 65000;
    v_CATEGORIA CLIENTE.CATEGORIA%type;
BEGIN
    IF v_FATURAMENTO <= 10000 THEN
        v_CATEGORIA := 'PEQUENO';
    ELSIF v_FATURAMENTO <= 50000 THEN
        v_CATEGORIA := 'MÉDIO';
    ELSIF v_FATURAMENTO <= 100000 THEN
        v_CATEGORIA := 'MÉDIO GRANDE';
    ELSE
        v_CATEGORIA := 'GRANDE';
    END IF;
    dbms_output.put_line('A Categoria é ' || v_CATEGORIA);
END;
1 resposta

Olá, Maelson!

Você está correto. Houve um equívoco na transcrição, e como você bem observou, o correto é utilizar ELSIF em vez de ELSEIF em PL/SQL.

Agradeço por apontar esse equívoco, sua observação é extremamente valiosa para garantirmos a qualidade e precisão do nosso conteúdo. O erro em questão já foi corrigido graças à sua observação. Muito obrigado!

Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!