Questão nº 35
Questão de Tecnologia da Informação · FCC TRT17 2022 (nº 35)
Em um banco de dados Oracle 19, funcionando em condições ideais, uma Analista deseja remover da tabela Funcionarios todos aqueles registros cujo campo `Data_Contratacao` seja 2 de janeiro de 2022 (dia-mês-ano). O comando PL/SQL correto para isso é:
`DELETE FROM Funcionarios WHERE Data_Contratacao =`
- A`CHECK_DATE('02-JAN-22','dd-mm-yy');`
- B`VALIDATE('02-JAN-22','dd-mon-yy');`
- C`TO_DATE('02-JAN-22','dd-mon-yy');` (alternativa correta)
- D`"02-JAN-22";`
- E`VAL_DATE('02-JAN-22','dd-mm-yy');`
Resposta comentada
Gabarito Alternativa C
Em bancos de dados, para comparar uma data armazenada em uma coluna (DATE) com um valor que você digita (uma string), é fundamental converter essa string para o tipo de dado DATE usando uma função específica e informando o formato da data.
- (A) Incorreta:
CHECK_DATEnão é uma função SQL padrão do Oracle para conversão de strings para datas. - (B) Incorreta:
VALIDATEnão é uma função SQL padrão do Oracle para conversão de strings para datas. - (C) Correta: A função
TO_DATE()é a maneira correta e robusta no Oracle para converter uma string (como'02-JAN-22') em um valor do tipoDATE, utilizando um formato específico ('dd-mon-yy') para que o banco de dados interprete a string corretamente. - (D) Incorreta: Embora o Oracle possa tentar uma conversão implícita de
'02-JAN-22'paraDATE, isso depende do parâmetroNLS_DATE_FORMATda sessão, o que a torna uma prática não confiável e propensa a erros em diferentes ambientes ou configurações. Armadilha da banca: Muitos iniciantes ou quem vem de outros bancos de dados podem tentar essa abordagem por ser mais "simples", mas ela não garante o funcionamento em todas as situações e é considerada má prática no Oracle. - (E) Incorreta:
VAL_DATEnão é uma função SQL padrão do Oracle para conversão de strings para datas.
Fonte: FCC TRT17 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.