Questão de Banco de Dados — Oracle — VUNESP 2023
- Código
- vu196715
- Banca
- VUNESP
- Órgão
- TJM SP
- Ano
- 2023
- Cargo
- Ana SJ ( )
- A<> e ^=.
- B>> e */.
- C|| e ^%.
- D<< e **.
- E:= e ==.
GabaritoA — <> e ^=.
Gabarito: letra A. No PL/SQL do Oracle, os operadores de desigualdade são <> e ^= (além de !=), todos equivalentes entre si — é exatamente o que a alternativa A apresenta. As demais alternativas misturam operadores de concatenação, atribuição, comparação e até símbolos que não existem na linguagem.
O PL/SQL (Procedural Language/Structured Query Language) é a extensão procedural da linguagem SQL criada pela Oracle, utilizada para processamento de transações e construção de programas complexos dentro do banco de dados. Uma das tarefas mais comuns em qualquer linguagem de programação é comparar valores, e para isso o PL/SQL oferece um conjunto de operadores de comparação. Entre eles, os operadores de desigualdade servem para verificar se dois valores são diferentes, retornando TRUE quando não são iguais e FALSE quando são.
No PL/SQL, existem três formas de escrever o operador de desigualdade: <>, != e ^=. Todos são funcionalmente idênticos — a escolha entre eles é apenas uma questão de preferência ou estilo de codificação. O operador <> é o mais comum e amplamente utilizado, sendo o padrão em muitas linguagens. O != é familiar para quem vem de linguagens como C, Java ou JavaScript. Já o ^= é uma forma específica do Oracle, que remete à notação de exponenciação usada em algumas linguagens, mas aqui tem o significado de desigualdade.
É importante não confundir esses operadores com outros símbolos que aparecem no PL/SQL. O operador de atribuição é := (dois pontos seguido de igual), que atribui um valor a uma variável. O operador de concatenação de strings é || (duas barras verticais). O operador de exponenciação é ** (dois asteriscos). E os operadores de comparação de igualdade são = (igual) e <>/!=/^= (diferente). A banca explora exatamente essa confusão entre operadores de naturezas diferentes.
A pegadinha desta questão está em reconhecer que <> e ^= são ambos operadores de desigualdade válidos no PL/SQL, enquanto os demais símbolos pertencem a outras categorias de operadores ou simplesmente não existem na linguagem. O candidato que conhece a sintaxe básica do PL/SQL identifica rapidamente a alternativa correta, mas quem confunde operadores de atribuição, concatenação ou exponenciação com operadores de comparação acaba errando.
Guarde a distinção entre as famílias de operadores: comparação (=, <>, !=, ^=, <, >, <=, >=), atribuição (:=), concatenação (||) e exponenciação (**). É exatamente nessa fronteira que as alternativas se dividem.
A alternativa apresenta <> e ^=, que são dois operadores de desigualdade válidos no PL/SQL. Ambos retornam TRUE quando os valores comparados são diferentes e FALSE quando são iguais. São equivalentes entre si e também ao operador !=, que não aparece na alternativa, mas é igualmente aceito pela linguagem.
>> e */ não são operadores de desigualdade no PL/SQL. O símbolo >> não é um operador válido na linguagem (o deslocamento de bits, quando existe, usa outra notação, e no PL/SQL não há operador de deslocamento). Já */ é um marcador de comentário de bloco (o fechamento de um comentário iniciado com /*), não um operador de comparação.
|| é o operador de concatenação de strings no PL/SQL, usado para unir dois textos em um só. O símbolo ^% não é um operador válido na linguagem — o ^ isolado é usado no operador de desigualdade ^=, mas combinado com % não forma nenhum operador reconhecido.
<< e ** não são operadores de desigualdade. O símbolo << é usado no PL/SQL como delimitador de rótulos (labels) em blocos e loops, como em <<meu_loop>>. Já ** é o operador de exponenciação, que calcula potências (por exemplo, 2 ** 3 resulta em 8).
:= é o operador de atribuição no PL/SQL, usado para atribuir um valor a uma variável (por exemplo, v_idade := 30;). O símbolo == não é um operador válido no PL/SQL — a comparação de igualdade é feita com um único =, e a dupla igualdade é comum em linguagens como C e Java, mas não no PL/SQL.
A banca mistura operadores de naturezas diferentes para confundir. O candidato que conhece apenas o <> pode achar que a alternativa A está incompleta, mas ^= é igualmente válido. Por outro lado, quem confunde := (atribuição) com comparação de igualdade pode cair na alternativa E. A chave é lembrar que no PL/SQL a atribuição usa :=, a concatenação usa ||, a exponenciação usa **, e a desigualdade pode ser escrita como <>, != ou ^=.
Para fixar, monte um mapa mental dos operadores do PL/SQL: comparação (=, <>, !=, ^=, <, >, <=, >=), atribuição (:=), concatenação (||), exponenciação (**). Na prova, ao ver um símbolo, pergunte-se: "isso compara, atribui, concatena ou calcula?" — a resposta elimina as alternativas erradas na hora.
Gabarito: letra A
Link permanente: /questoes/vu196715