Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — VUNESP 2023
Banco de Dados›PL/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,
A& e %
B|| e #
C** e !
D“ “ e &
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.