Pular para o conteúdo principal

Questão de Banco de Dados — PL-SQL — FCC 2016

Banco de DadosPL-SQL
Código
fc029067
Banca
FCC
Órgão
ELETROBRAS-ELETROSUL
Ano
2016
Nível
Superior
Cargo
Informática
Considere as instruções Oracle PL/SQL abaixo.I. SELECT sobrenome, id, salario FROM funcionarios WHERE id IN ('SA_REP';'ST_CLERK') AND salario NOT IN (2000; 3000; 5000);II. SELECT id, sobrenome, salario, ROUND(salario * 1.155, 0) "Novo Salário", ROUND(salario * 1.155, 0) - salario "Aumento" FROM funcionarios;III. SELECT sobrenome, LPAD(salario, 15, '$') Salário FROM funcionarios;IV. SELECT id, CASE id WHEN 'ST-CLERK' THEN 'E' WHEN 'SA_REP' THEN 'D' WHEN 'ST_MAN' THEN 'C' ELSE '0' END_CASE FROM funcionarios;Considerando a existência da tabela funcionarios com os campos id (PK), nome, sobrenome e salario em um banco de dados aberto e em condições ideais, a sintaxe das instruções está correta APENAS nos itens
  1. AII, III e IV.
  2. BI e IV.
  3. CII e III.
  4. DI e III.
  5. EI, II e IV.
Revelar gabarito e comentário

GabaritoC — II e III.

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

PL/SQL: Sintaxe de Comandos SELECT

Gabarito: letra C. Apenas os itens II e III apresentam sintaxe correta em Oracle PL/SQL. O item I usa ponto e vírgula (;) como separador na lista do operador IN, quando o correto é vírgula (,). O item IV utiliza END_CASE no lugar de END para encerrar a expressão CASE, o que é inválido.

Análise dos Itens

Item I — ❌ Incorreto

O operador IN exige que os valores sejam separados por vírgula, não por ponto e vírgula. A sintaxe correta seria:

WHERE id IN ('SA_REP', 'ST_CLERK') AND salario NOT IN (2000, 3000, 5000)

O uso de ; gera erro de sintaxe no Oracle.

Item II — ✅ Correto

A instrução utiliza corretamente aritmética, a função ROUND (com dois argumentos) e aliases entre aspas duplas. Não há erro de sintaxe.

Item III — ✅ Correto

A função LPAD é aplicada corretamente: LPAD(salario, 15, '$') preenche o valor com $ à esquerda até completar 15 caracteres. O alias Salário também é válido.

Item IV — ❌ Incorreto

A expressão CASE deve ser encerrada com a palavra END. No comando, foi escrito END_CASE, o que torna a consulta inválida. O alias deve vir após o END, por exemplo:

CASE id WHEN ... ELSE '0' END "end_case"

Conclusão: Apenas os itens II e III estão corretos → gabarito C.

Item

Sintaxe Correta?

Motivo

I

Usa ; como separador na lista do IN; o correto é ,

II

Aritmética, ROUND e aliases com aspas duplas estão corretos

III

LPAD aplicado corretamente; alias válido

IV

END_CASE inválido; o correto é END para encerrar CASE

Link permanente: /questoes/fc029067