Pular para o conteúdo principal

Questão de Banco de Dados — PL/SQL e Outras Extensões SQL — FUNDATEC 2025

Banco de DadosPL/SQL e Outras Extensões SQL
Código
qa699060
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Cargo
ANC ( )
Considerando que 07/02/2025 é uma sexta-feira, qual é a saída apresentada após executar o seguinte trecho de código escrito em PL/SQL?   SET SERVEROUTPUT ON; DECLARE V_DATE DATE:= TO_DATE('07-02-2025 00:00:00', 'DD-MM-YYYY HH24:MI:SS'); V_NUMBER NUMBER(2); BEGIN V_NUMBER:= TO_CHAR(V_DATE, 'W'); DBMS_OUTPUT.PUT_LINE(V_NUMBER); END;
  1. A1
  2. B2
  3. C5
  4. D6
  5. EApresenta erro de sintaxe
Revelar gabarito e comentário

GabaritoA — 1

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 A — a conta chega a 1 (alternativa A).

A ideia por trás

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.

O que a questão dá

  • 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

Passo 1 — Identificar o dia do mês

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.

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

Confundir com o dia da semana (sexta-feira) e tentar calcular a semana a partir dele.

Passo 2 — Calcular a semana do mês

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.

semana=dia7+1semana = \left\lfloor \frac{dia}{7} \right\rfloor + 1

De onde vem cada valor: diadia = passo 1: 7

semana=77+1=1+1=2=1semana = \left\lfloor \frac{7}{7} \right\rfloor + 1 = 1 + 1 = 2 = \boxed{1}
NÃO CAIA NESSA!

Esquecer de somar 1, ou arredondar para cima, o que daria 2.

Resposta: 1 (alternativa A)

Link permanente: /questoes/qa699060