Questão de Banco de Dados — Oracle — FUNDATEC 2025
Banco de Dados›Oracle
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?
A123.45
B123.450
C00123.450
DFM00123.450
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.
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.
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.
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.