Pular para o conteúdo principal

Questão de Banco de Dados — Oracle — Quadrix 2023

Banco de DadosOracle
Código
qg027188
Banca
Quadrix
Órgão
CREFITO-7ª Região(BA e SE)
Ano
2023
Nível
Superior
Cargo
Programador(a)
No que se refere ao modelo entidade-relacionamento (MER) e à linguagem SQL, julgue o item.No Oracle, a digitação do comando SELECT SYSDATE FROM DUAL; mostrará a data do sistema, como, por exemplo, 6/6/2023. Entretanto, a execução do comando SELECT SYSDATE + 30 FROM DUAL; implicará erro, já que não se discriminou a qual das unidades (dia, mês ou ano) será somado o valor 30.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Funções de data no Oracle: SYSDATE e aritmética de datas

Gabarito: ERRADO (letra E). No Oracle, SYSDATE retorna a data e hora atuais do sistema, e a aritmética com datas é nativa: somar um número inteiro a uma data adiciona esse número em dias. Portanto, SELECT SYSDATE + 30 FROM DUAL; é um comando válido que retorna a data atual acrescida de 30 dias — não há erro, pois a unidade padrão da operação aritmética com datas no Oracle é o dia. A afirmação do enunciado está incorreta.

A linguagem SQL, em especial no Oracle, trata datas como um tipo de dado numérico especial. Quando você realiza uma operação aritmética como SYSDATE + 30, o Oracle interpreta o número 30 como uma quantidade de dias a serem adicionados à data. Essa é uma característica fundamental do SGBD Oracle, que permite manipular datas de forma direta e intuitiva. A mesma lógica se aplica à subtração: SYSDATE - 7 retorna a data de 7 dias atrás. Essa capacidade de realizar aritmética com datas é amplamente utilizada em consultas para cálculos de prazos, vencimentos e intervalos.

A confusão que a questão explora é a suposição de que seria necessário especificar a unidade (dia, mês ou ano) para realizar a soma. No entanto, o Oracle não exige essa especificação porque a operação aritmética com datas tem um comportamento padrão bem definido: o número inteiro é sempre interpretado como dias. Para somar meses ou anos, o Oracle oferece funções específicas como ADD_MONTHS, MONTHS_BETWEEN e INTERVAL (com a sintaxe INTERVAL '30' DAY ou INTERVAL '1' MONTH), mas a soma direta com um número inteiro é sempre em dias.

Para ilustrar, considere o seguinte exemplo prático: se a data atual do sistema for 6 de junho de 2023, o comando SELECT SYSDATE + 30 FROM DUAL; retornará 6 de julho de 2023. Isso demonstra que a operação é perfeitamente válida e não gera erro. A banca tenta induzir o candidato a acreditar que seria necessário discriminar a unidade, mas isso é incorreto no contexto do Oracle.

A pegadinha desta questão está em confundir a aritmética de datas do Oracle com a necessidade de especificar unidades. O candidato que não conhece o comportamento padrão do Oracle pode achar que a soma de um número a uma data exigiria uma sintaxe mais complexa, mas a realidade é que a soma direta é em dias. Essa é uma característica que diferencia o Oracle de outros SGBDs e que costuma ser cobrada em provas de banco de dados.

NÃO CAIA NESSA!

A banca explora a suposição de que a soma de um número a uma data exigiria a especificação da unidade (dia, mês ou ano). No Oracle, a aritmética com datas é direta: SYSDATE + 30 adiciona 30 dias à data atual, sem necessidade de qualquer especificação adicional. Essa é uma característica nativa do SGBD.

1SYSDATE
Data e hora atuais do sistema
2Soma com inteiro
Adiciona em dias (padrão)
SYSDATE + 30 = +30 dias
3Subtração
SYSDATE - 7 = -7 dias
4Somar meses/anos
ADD_MONTHS
INTERVAL '30' DAY
INTERVAL '1' MONTH
Aritmética de datas no Oracle
LEVELsoulevel.com.br
Aritmética de datas no Oracle: SYSDATE (Data e hora atuais do sistema); Soma com inteiro (Adiciona em dias (padrão), SYSDATE + 30 = +30 dias); Subtração (SYSDATE - 7 = -7 dias); Somar meses/anos (ADD_MONTHS, INTERVAL '30' DAY, INTERVAL '1' MONTH)

Alternativa E — ❌ Incorreta ⟵ GABARITO

A afirmação de que SELECT SYSDATE + 30 FROM DUAL; implicará erro é incorreta. No Oracle, a aritmética com datas é uma funcionalidade nativa: somar um número inteiro a uma data adiciona esse número em dias. Portanto, o comando é válido e retorna a data atual acrescida de 30 dias. A banca tenta confundir o candidato ao sugerir que seria necessário especificar a unidade, mas isso não é verdade no Oracle. A operação SYSDATE + 30 é perfeitamente executável e não gera erro.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qg027188