Pular para o conteúdo principal

Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — VUNESP 2024

Banco de DadosPL/SQL e Outras Extensões SQL
Código
vu212048
Banca
VUNESP
Órgão
SPTrans
Ano
2024
Cargo
Ana Info ( )
Considere a utilização de operadores na linguagem PL/SQL utilizada no sistema gerenciador de banco de dados Oracle, em sua versão 21c.   Tais operadores respeitam regras de precedência, sendo correto afirmar que o operador
  1. A** (exponenciação) tem maior prioridade do que o operador / (divisão).
  2. B|| (concatenação) tem menor prioridade do que o operador NOT.
  3. C<> (diferente) tem maior prioridade do que o operador * (multiplicação).
  4. DLIKE tem maior prioridade do que o operador – (diferença).
  5. EAND tem maior prioridade do que o operador + (adição).
Revelar gabarito e comentário

GabaritoA — ** (exponenciação) tem maior prioridade do que o operador / (divisão).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Precedência de operadores em PL/SQL (Oracle)

Gabarito: letra A. No PL/SQL do Oracle, o operador de exponenciação ** tem precedência maior que o operador de divisão /, seguindo a hierarquia de operadores da linguagem. As demais alternativas invertem a ordem de precedência entre operadores de categorias diferentes, o que as torna incorretas.

A precedência de operadores define a ordem em que as operações são avaliadas em uma expressão sem parênteses. No PL/SQL, assim como em outras linguagens, operadores de maior precedência são avaliados primeiro. A hierarquia completa de precedência no PL/SQL, da maior para a menor, é:

  1. Exponenciação (``)** — maior precedência

  2. Identidade e negação (+, - unários)

  3. Multiplicação e divisão (*, /)

  4. Adição e subtração (+, - binários)

  5. Concatenação (||)

  6. Comparação (=, <, >, <=, >=, <>, !=, ~=, ^=, LIKE, IN, IS NULL, BETWEEN)

  7. NOT

  8. AND

  9. OR — menor precedência

Essa ordem é fundamental para avaliar expressões corretamente. Por exemplo, na expressão 2 + 3 * 4, a multiplicação é avaliada primeiro, resultando em 2 + 12 = 14, não (2 + 3) * 4 = 20. Da mesma forma, 2 ** 3 * 4 é avaliado como (2 ** 3) * 4 = 8 * 4 = 32, pois a exponenciação tem precedência sobre a multiplicação.

A pegadinha desta questão está em comparar operadores de categorias diferentes. A banca mistura operadores aritméticos, de concatenação, de comparação e lógicos, esperando que o candidato conheça a hierarquia completa. A alternativa correta é a única que compara dois operadores da mesma categoria (aritméticos) e acerta a ordem entre eles.

NÃO CAIA NESSA!

A banca mistura operadores de categorias diferentes (aritméticos, concatenação, comparação, lógicos) para confundir. A hierarquia correta é: ** > * / > + - > || > comparação > NOT > AND > OR. A única alternativa que compara operadores da mesma categoria e acerta a ordem é a A.

Operador

Categoria

Precedência (maior → menor)

** (exponenciação)

Aritmético

1ª (maior)

+, - unários

Aritmético

*, /

Aritmético

+, - binários

Aritmético

|| (concatenação)

Concatenação

=, <, >, LIKE, IN, BETWEEN, etc.

Comparação

NOT

Lógico

AND

Lógico

OR

Lógico

9ª (menor)

  1. 1** exponenciação
  2. 2+ - unários
  3. 3* / multiplicação
  4. 4+ - binários
  5. 5|| concatenação
  6. 6Comparação (=, <>, LIKE)
  7. 7NOT
  8. 8AND
  9. 9OR
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O operador ** (exponenciação) tem a maior precedência entre todos os operadores do PL/SQL, incluindo a divisão /. Isso significa que em uma expressão como 2 ** 3 / 4, a exponenciação é avaliada primeiro: (2 ** 3) / 4 = 8 / 4 = 2. A alternativa está correta ao afirmar que ** tem maior prioridade que /.

Alternativa B — ❌ Incorreta

A concatenação || tem maior precedência que o operador NOT, não menor. Na hierarquia, || está acima dos operadores de comparação e dos operadores lógicos (NOT, AND, OR). A alternativa inverte a ordem correta.

Alternativa C — ❌ Incorreta

O operador <> (diferente) é um operador de comparação, que tem precedência menor que a multiplicação *. A alternativa afirma o contrário, invertendo a hierarquia.

Alternativa D — ❌ Incorreta

O operador LIKE é um operador de comparação, e o operador - (diferença) é um operador aritmético (subtração). Operadores aritméticos têm precedência maior que operadores de comparação. Portanto, - tem maior prioridade que LIKE, não o contrário.

Alternativa E — ❌ Incorreta

O operador AND é um operador lógico, que tem precedência menor que o operador + (adição), que é aritmético. A alternativa afirma o contrário, invertendo a hierarquia.

Gabarito: letra A

Link permanente: /questoes/vu212048