Pular para o conteúdo principal

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

Banco de DadosPL/SQL e Outras Extensões SQL
Código
vu195550
Banca
VUNESP
Órgão
EPC
Ano
2023
Cargo
Ana ( )

O PL/SQL comporta diversas expressões em seus comandos. Há algumas expressões que necessitam utilizar os chamados delimitadores. Em particular, os delimitadores de concatenação e de exponenciação são, respectivamente,

  1. A& e %
  2. B|| e #
  3. C** e !
  4. D“ “ e &
  5. E|| e **
Revelar gabarito e comentário

GabaritoE — || e **

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”.

Delimitadores em PL/SQL: concatenação e exponenciação

Gabarito: letra E. No PL/SQL, o operador de concatenação de strings é || (duas barras verticais) e o operador de exponenciação é ** (dois asteriscos). Essa é uma distinção clássica que a banca explora, pois são símbolos pouco intuitivos para quem vem de outras linguagens.

O PL/SQL (Procedural Language/Structured Query Language) é a extensão procedural da linguagem SQL do Oracle. Ele permite criar blocos de código com declarações, comandos SQL e controle de fluxo. Dentro desses blocos, utilizamos operadores e delimitadores para realizar cálculos, comparações e manipulação de strings. Os delimitadores são símbolos especiais que têm um significado próprio na linguagem, como os operadores aritméticos, relacionais e de concatenação.

A tabela a seguir resume os principais delimitadores do PL/SQL, com destaque para os dois que a questão cobra:

Delimitador

Descrição

+, -, *, /

Adição, subtração/negação, multiplicação, divisão

%

Indicador de atributos (ex.: %TYPE, %ROWTYPE)

'

Delimitador de string de caracteres

.

Seletor de componentes

(, )

Delimitador de lista ou expressões

:

Indicador de variável de host

,

Separador de itens

"

Delimitador para identificadores com aspas

=

Operador relacional (igualdade)

@

Indicador de acesso remoto

;

Terminação de uma declaração

:=

Operador de atribuição

=>

Operador de associação

`

`

Operador de concatenação

**

Operador de exponenciação

<<, >>

Delimitador de rótulo (label)

/*, */

Comentário de múltiplas linhas

--

Comentário de única linha

..

Operador de intervalo

<, >, <=, >=

Operadores relacionais

<>, !=, ~=, ^=

Versões para NOT EQUAL

A concatenação é usada para unir duas strings em uma só. Por exemplo, 'João' || ' Silva' resulta em 'João Silva'. Já a exponenciação calcula a potência de um número: 2 ** 3 resulta em 8. Esses operadores são essenciais em expressões PL/SQL, e a banca costuma cobrar seu significado exato.

A pegadinha desta questão está em confundir o operador de concatenação com o de exponenciação, ou ainda com outros símbolos como & (que em SQL*Plus é usado para variáveis de substituição) e % (que em PL/SQL é o indicador de atributos, como em %TYPE e %ROWTYPE).

NÃO CAIA NESSA!

A banca troca os operadores de concatenação e exponenciação por símbolos de outras linguagens ou por outros delimitadores do próprio PL/SQL. Por exemplo, & é usado em SQL*Plus para variáveis de substituição, não para concatenação; % é o indicador de atributos, não exponenciação. Fique atento: || é concatenação e ** é exponenciação, e essa é uma distinção que cai com frequência.

Alternativa A — ❌ Incorreta

& é o delimitador de variável de substituição em SQL*Plus, não de concatenação. % é o indicador de atributos em PL/SQL (usado em %TYPE e %ROWTYPE), não de exponenciação. Portanto, ambos os símbolos estão incorretos para as funções pedidas.

Alternativa B — ❌ Incorreta

|| é, de fato, o operador de concatenação, mas # não é o operador de exponenciação em PL/SQL. O símbolo # não tem significado especial como operador aritmético nessa linguagem. O correto para exponenciação é **.

Alternativa C — ❌ Incorreta

** é o operador de exponenciação, mas ! não é o operador de concatenação. O símbolo ! não é usado para concatenação em PL/SQL; o correto é ||. Além disso, ! pode ser usado como operador de negação em algumas linguagens, mas não em PL/SQL para esse fim.

Alternativa D — ❌ Incorreta

" " (aspas duplas) é o delimitador para identificadores com aspas, usado para criar identificadores case-sensitive, não para concatenação. & é o delimitador de variável de substituição em SQL*Plus, não de exponenciação. Ambos estão incorretos.

Alternativa E — ✅ Correta ⟵ GABARITO

|| é o operador de concatenação de strings em PL/SQL, e ** é o operador de exponenciação. Esses são os delimitadores corretos para as funções pedidas. Por exemplo, 'a' || 'b' resulta em 'ab', e 2 ** 3 resulta em 8.

Gabarito: letra E

Link permanente: /questoes/vu195550