Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — FUNDATEC 2025

Banco de DadosOracle
Código
qg474892
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação / Ênfase em Programação de Sistemas na Tecnologia JAVA
Qual é a saída apresentada após executar o seguinte trecho de código escrito em PL/SQL?Q56.png 414×148
  1. A123.45
  2. B123.450
  3. C00123.450
  4. DFM00123.450
  5. EApresenta erro de sintaxe
Revelar gabarito e comentário

GabaritoC — 00123.450

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

Resolução

Gabarito: letra C — a conta chega a 00123.450 — alternativa C.

A ideia por trás

A função TO_CHAR converte um número em texto, e o modelo de formato diz exatamente como esse texto deve ficar: quantos dígitos inteiros, quantas casas decimais, se há separador de milhar, etc. Cada caractere do modelo tem um papel: '0' força a exibição de um dígito (preenchendo com zero se faltar), '9' mostra um dígito mas deixa espaço se não houver, e o ponto marca onde fica a vírgula decimal.

O modelo '00000.000' pede 5 dígitos inteiros e 3 decimais. O número 123.45 tem 3 inteiros e 2 decimais, então o Oracle completa com zeros: 00123.450. O prefixo 'FM' (Fill Mode) é um modificador que remove os espaços em branco que o Oracle adiciona por padrão ao redor do resultado — ele não é um caractere que aparece na saída, apenas controla o preenchimento.

Esta questão testa se você sabe o efeito de cada elemento do modelo: o '0' força zeros, o 'FM' não aparece na saída, e o ponto é o separador decimal. A pegadinha é confundir o 'FM' com parte do texto final.

O que a questão dá

  • valor numérico: 123.45

  • modelo de formato: FM00000.000

  • função: TO_CHAR

O que queremos: a string resultante da formatação

Passo 1 — Preencher a parte inteira com zeros

O modelo '00000.000' exige 5 dígitos inteiros, mas o número 123.45 tem apenas 3. Para completar as 5 posições, o Oracle insere zeros à esquerda, resultando em '00123'.

Por que esta fórmula: A regra do '0' no modelo é: se o número não tiver dígito naquela posição, exibe zero. Como temos 3 dígitos e 5 posições, faltam 2, então entram dois zeros.

00123\boxed{00123}
NÃO CAIA NESSA!

Esquecer de preencher os zeros à esquerda e achar que a parte inteira fica '123'.

Passo 2 — Preencher a parte decimal com zeros

O modelo pede 3 casas decimais, mas o número tem apenas 2 ('45'). O Oracle completa com um zero à direita, resultando em '450'.

Por que esta fórmula: Assim como na parte inteira, o '0' no modelo força a exibição de um dígito. Como só temos dois dígitos decimais, o terceiro é preenchido com zero.

450\boxed{450}
NÃO CAIA NESSA!

Achar que a parte decimal fica '45' sem o zero final.

Passo 3 — Juntar as partes com o ponto decimal

Com as partes inteira e decimal prontas, basta montar a string final colocando o ponto no lugar indicado pelo modelo.

00123.450\boxed{00123.450}
NÃO CAIA NESSA!

Colocar o ponto no lugar errado, como '0012.3450'.

Passo 4 — Aplicar o efeito do FM

O prefixo 'FM' no modelo não é um caractere que aparece na saída; ele apenas remove os espaços em branco que o Oracle adicionaria ao redor do resultado. Como já temos a string sem espaços, o FM não altera nada aqui.

00123.450\boxed{00123.450}
NÃO CAIA NESSA!

Incluir 'FM' na saída, como na alternativa D.

Resposta: 00123.450 — alternativa C

Link permanente: /questoes/qg474892