Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — FUNDATEC 2025
- Código
- qa699060
- Banca
- FUNDATEC
- Órgão
- PROCERGS
- Ano
- 2025
- Cargo
- ANC ( )
- A1
- B2
- C5
- D6
- EApresenta erro de sintaxe
GabaritoA — 1
Gabarito: letra A — a conta chega a 1 (alternativa A).
A função TO_CHAR em PL/SQL converte uma data em texto seguindo um formato. O formato 'W' extrai o número da semana dentro do mês, que vai de 1 a 5. A semana é contada a partir do dia 1 do mês, sem considerar o dia da semana: os dias 1 a 7 formam a semana 1, os dias 8 a 14 a semana 2, e assim por diante.
O número da semana é calculado como o quociente inteiro do dia do mês dividido por 7, mais 1. Por exemplo, dia 7 → 7/7 = 1, então semana 1; dia 8 → 8/7 = 1,14, arredondado para baixo dá 1, mais 1 = semana 2. Isso significa que o dia da semana (sexta-feira, por exemplo) não influencia o resultado — apenas o dia do mês importa.
A questão testa se você sabe que 'W' conta a semana do mês a partir do dia 1, e não a partir do primeiro dia da semana. O dia 7 de fevereiro está na primeira semana, então a resposta é 1.
data: 07/02/2025 00:00:00
formato: 'W'
dia da semana: sexta-feira
O que queremos: o valor exibido por DBMS_OUTPUT.PUT_LINE
O formato 'W' depende apenas do dia do mês, não do dia da semana. Precisamos saber qual é o dia para localizar a semana.
Confundir com o dia da semana (sexta-feira) e tentar calcular a semana a partir dele.
Com o dia do mês em mãos, aplicamos a regra do formato 'W': a semana é o quociente inteiro do dia dividido por 7, mais 1.
Por que esta fórmula: A fórmula reflete a definição do Oracle: os dias 1 a 7 são a semana 1, 8 a 14 a semana 2, etc. Dividir por 7 e arredondar para baixo dá o número de semanas completas antes do dia atual.
De onde vem cada valor: = passo 1: 7
Esquecer de somar 1, ou arredondar para cima, o que daria 2.
Resposta: 1 (alternativa A)
Link permanente: /questoes/qa699060