Instruções CASE em PL/SQL: Controlando o Fluxo com Elegância

Olá, futuro mestre em PL/SQL! Nesse artigo vamos explorar as instruções CASE. Prepare-se para aprender uma ferramenta poderosa que vai deixar seu código mais limpo e eficiente.

O que são Instruções CASE?

Imagine que você está em uma lanchonete. O atendente pergunta: “O que você vai querer?”. Dependendo da sua resposta, ele vai preparar um lanche diferente. Essa é exatamente a ideia por trás das instruções CASE em PL/SQL!

As instruções CASE são como um cardápio inteligente no seu código. Elas permitem que você tome decisões baseadas em diferentes condições, de forma organizada e fácil de entender.

Tipos de Instruções CASE

Existem dois tipos principais de instruções CASE:

  1. CASE simples
  2. CASE pesquisado (ou Searched CASE)

Vamos explorar cada um deles com exemplos práticos.

1. CASE Simples

O CASE simples é como um menu de opções fixas. Você tem um valor específico (chamado de seletor) e compara esse valor com várias opções.

Estrutura básica:

Vamos ver um exemplo prático usando a tabela JOBS do schema HR:

Neste exemplo, estamos determinando a prioridade de contratação com base no ID do cargo. É como se tivéssemos uma tabela de prioridades pré-definida.

2. CASE Pesquisado

O CASE pesquisado é mais flexível. É como um processo de avaliação onde você pode criar suas próprias regras para cada opção.

Estrutura básica:

Vamos ver um exemplo usando as tabelas EMPLOYEES e DEPARTMENTS:

Neste exemplo, estamos determinando o percentual de aumento salarial com base em condições mais complexas, combinando o departamento e o salário atual do funcionário.

CASE Simples vs. CASE Pesquisado: Entendendo as Diferenças

Imagine que você está em uma lanchonete. Existem duas formas de fazer seu pedido:

  1. Escolher um combo do menu (CASE simples)
  2. Montar seu próprio lanche com ingredientes específicos (CASE pesquisado)

Vamos explorar cada um deles:

1. CASE Simples: O Menu de Combos

O CASE simples é como escolher um combo pré-definido no menu de uma lanchonete.

Estrutura:

Características do CASE Simples:

  1. Tem um “seletor” (como o número do combo no menu)
  2. Compara o seletor com valores específicos (como os números dos combos)
  3. Executa uma ação baseada na correspondência exata

Exemplo com o schema HR:

Neste exemplo, v_job_id é o seletor. É como se você dissesse: “Quero o combo número ‘IT_PROG'”.

2. CASE Pesquisado: Montando Seu Próprio Lanche

O CASE pesquisado é como montar seu próprio lanche, escolhendo ingredientes específicos baseados em várias condições.

Estrutura:

Características do CASE Pesquisado:

  1. Não tem um seletor específico
  2. Usa condições complexas (como “Se tiver alface E tomate, OU se for vegetariano”)
  3. Executa uma ação baseada na primeira condição verdadeira

Exemplo com o schema HR:

Neste exemplo, não há um seletor único. É como se você dissesse: “Quero um lanche que tenha isso E aquilo, OU que seja assim…”.

Principais Diferenças

  1. Seletor vs. Condições
    • CASE Simples: Usa um seletor único (como escolher um número do menu)
    • CASE Pesquisado: Usa condições complexas (como especificar ingredientes detalhados)
  2. Flexibilidade
    • CASE Simples: Menos flexível, bom para comparações diretas
    • CASE Pesquisado: Mais flexível, permite condições complexas e variadas
  3. Uso de Operadores
    • CASE Simples: Geralmente usa apenas igualdade (=)
    • CASE Pesquisado: Pode usar qualquer operador lógico (AND, OR, >, <, etc.)
  4. Tipo de Dados
    • CASE Simples: O seletor e os valores comparados devem ser do mesmo tipo
    • CASE Pesquisado: Pode misturar diferentes tipos de dados nas condições

Quando Usar Cada Um?

  • Use CASE Simples quando:
    1. Você está comparando um valor com várias opções específicas
    2. As comparações são simples e diretas
  • Use CASE Pesquisado quando:
    1. Você precisa de condições mais complexas
    2. Você quer comparar diferentes colunas ou usar funções nas condições

Exercício Prático

Vamos criar um exemplo que mostra ambos os tipos de CASE em ação:

Neste exercício, usamos:

  • CASE Simples para categorizar o cargo baseado no job_id
  • CASE Pesquisado para categorizar o salário baseado em condições mais complexas

Experimente mudar o v_employee_id para ver como os resultados mudam para diferentes funcionários!

Mais um Exemplo Prático

Vamos consolidar o que aprendemos com um exercício usando as tabelas do schema HR:

Este exercício simula um sistema de cálculo de bônus para os funcionários. Tente mudar o valor de v_employee_id e veja como o bônus muda para diferentes funcionários!

Informações Importantes

  1. Ordem importa: Nas instruções CASE, a ordem das condições é crucial. O PL/SQL para na primeira condição verdadeira que encontrar.
  2. Sempre use ELSE: É uma boa prática sempre incluir uma cláusula ELSE para lidar com casos inesperados.
  3. Evite aninhamento excessivo: Se você se pegar aninhando muitos CASE, considere refatorar seu código.
  4. Teste todas as possibilidades: Certifique-se de testar todos os caminhos possíveis do seu CASE para evitar surpresas.

Conclusão

Entender a diferença entre CASE Simples e CASE Pesquisado é crucial para escrever código PL/SQL eficiente e legível. O CASE Simples é ótimo para comparações diretas, enquanto o CASE Pesquisado oferece mais flexibilidade para condições complexas.

Lembre-se:

  • CASE Simples é como escolher um combo no menu
  • CASE Pesquisado é como montar seu próprio lanche com ingredientes específicos

Pratique usando ambos os tipos em diferentes cenários para se tornar proficiente em escolher o melhor para cada situação. Com o tempo, você desenvolverá um instinto para quando usar cada um, tornando seu código PL/SQL mais elegante e eficaz.

Scroll to Top