Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FCC 2019

Banco de DadosOracle
Código
fc057235
Banca
FCC
Órgão
TJ-MA
Ano
2019
Cargo
Analista Judiciário - Analista de Sistemas - Desenvolvimento
Considere a tabela abaixo, criada no Oracle 11g.Nome da tabela: funcionariosCampos: id (PK), nome, salarioUma organização necessita de um relatório que exiba o id, o nome e o salário de cada funcionário acrescido de 11%, expresso como número inteiro. O salário reajustado em 11% deve ter a coluna exibida com título "Salário Reajustado". Com o banco de dados aberto e em condições ideais, para conseguir o que deseja a organização, um Analista deve utilizar a instrução PL/SQL:
  1. ASELECT id, nome, INTEGER (salario * 1.11) "Salário Reajustado" FROM funcionarios;
  2. BSELECT id, nome, ROUND(salario * 0,11, 0) "Salário Reajustado" FROM funcionarios;
  3. CSELECT id, nome, TOINT(salario * 1.11, 0) Salário Reajustado FROM funcionarios;
  4. DSELECT id, nome, ROUND(salario * 1.11, 0) "Salário Reajustado" FROM funcionarios;
  5. ESELECT id, nome, SVG(salario * 1,11, 0) "Salário Reajustado" FROM funcionarios;
Revelar gabarito e comentário

GabaritoD — SELECT id, nome, ROUND(salario * 1.11, 0) "Salário Reajustado" FROM funcionarios;

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

Oracle SQL: Consulta com cálculo e alias

Gabarito: letra D. A função ROUND(salario * 1.11, 0) calcula o salário acrescido de 11% e arredonda para inteiro (0 casas decimais). O alias com aspas duplas "Salário Reajustado" é obrigatório por conter espaços e acentos. As demais alternativas usam funções inexistentes ou lógica incorreta.

Alternativa A — ❌ Incorreta

INTEGER(salario * 1.11) — A função INTEGER não existe no Oracle. Para converter para inteiro, usa-se FLOOR, CEIL, TRUNC ou ROUND, mas nunca INTEGER dessa forma.

Alternativa B — ❌ Incorreta

ROUND(salario * 0,11, 0) — Multiplica o salário por 0,11 (11%), o que retorna apenas o valor do acréscimo, não o salário reajustado. O correto é multiplicar por 1,11 (100% + 11%). Além disso, o separador decimal usado (vírgula) é inválido no Oracle; deve ser ponto (.).

Alternativa C — ❌ Incorreta

TOINT(salario * 1.11, 0)TOINT não é uma função do Oracle. A função de conversão para inteiro é TO_NUMBER com formato ou TRUNC/ROUND/FLOOR/CEIL. O alias está sem aspas duplas, o que é inválido por conter espaço e acento (causaria erro de sintaxe).

Alternativa D — ✅ Correta ⟵ GABARITO

ROUND(salario * 1.11, 0) "Salário Reajustado" — A função ROUND arredonda o resultado para 0 casas decimais (inteiro), e o alias entre aspas duplas permite o nome com espaço e acento. O cálculo salario * 1.11 aplica corretamente o acréscimo de 11%.

Alternativa E — ❌ Incorreta

SVG(salario * 1,11, 0)SVG não é uma função válida. Além disso, usa vírgula como separador decimal (1,11) em vez de ponto. O alias está com aspas duplas, mas a função principal é inválida.

NÃO CAIA NESSA!

A banca explora o desconhecimento de funções matemáticas do Oracle. O erro mais sutil está na alternativa B, que troca o fator de multiplicação: em vez de 1.11 (salário + 11%), usa 0.11 (apenas o acréscimo). Memorize: para aumentar um valor em X%, multiplique por 1 + X/100.

PEGA ESSA DICA!

No Oracle, para arredondar um número para inteiro, use ROUND(valor, 0) ou TRUNC(valor, 0) (para truncar). Nunca invente funções como INTEGER ou TOINT. Alias com caracteres especiais (espaços, acentos) sempre devem estar entre aspas duplas. Treine com exercícios de funções de número e strings para fixar.

Gabarito: letra D

Link permanente: /questoes/fc057235