Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — VUNESP 2024
Banco de Dados›PL/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
A** (exponenciação) tem maior prioridade do que o operador / (divisão).
B|| (concatenação) tem menor prioridade do que o operador NOT.
C<> (diferente) tem maior prioridade do que o operador * (multiplicação).
DLIKE tem maior prioridade do que o operador – (diferença).
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, é:
Exponenciação (``)** — maior precedência
Identidade e negação (+, - unários)
Multiplicação e divisão (*, /)
Adição e subtração (+, - binários)
Concatenação (||)
Comparação (=, <, >, <=, >=, <>, !=, ~=, ^=, LIKE, IN, IS NULL, BETWEEN)
NOT
AND
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
2ª
*, /
Aritmético
3ª
+, - binários
Aritmético
4ª
|| (concatenação)
Concatenação
5ª
=, <, >, LIKE, IN, BETWEEN, etc.
Comparação
6ª
NOT
Lógico
7ª
AND
Lógico
8ª
OR
Lógico
9ª (menor)
1** exponenciação
2+ - unários
3* / multiplicação
4+ - binários
5|| concatenação
6Comparação (=, <>, LIKE)
7NOT
8AND
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.