Considere uma tabela em uso chamada func, de um banco de da...

Próximas questões
Com base no mesmo assunto
Q465667 Banco de Dados
Considere uma tabela em uso chamada func, de um banco de dados Oracle contendo, dentre outros, os campos para armazenar o número do funcionário (FunNo) e a data de admissão (FDatAdm).

Para exibir o número do funcionário, a data de admissão e o número de meses entre a data de admissão e a data atual, utiliza- se a instrução PL/SQL
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - select FunNo, FDatAdm, MONTHS_BETWEEN(SYSDATE, FDatAdm) from func;

Para resolver essa questão é necessário entender o funcionamento da função MONTHS_BETWEEN no Oracle. Essa função é usada para calcular a diferença em meses entre duas datas. A sintaxe correta é MONTHS_BETWEEN(data1, data2), onde data1 é a data mais recente e data2 é a data mais antiga. O resultado será o número de meses que separam as duas datas.

O enunciado pede para calcular o número de meses entre a data de admissão do funcionário e a data atual. A função SYSDATE é usada para obter a data e hora atual do sistema no Oracle. Dessa forma, o primeiro argumento da função MONTHS_BETWEEN deve ser SYSDATE e o segundo argumento deve ser o campo FDatAdm, que contém a data de admissão do funcionário.

As instruções nas alternativas A, B, C e D estão incorretas, seja por usar uma função inexistente, seja por utilizar a função MONTHS_BETWEEN com argumentos errados ou de forma sintaticamente incorreta, como o uso de DATE() que não é uma função no Oracle, ou a utilização de um hífen ao invés de um sublinhado na função, ou ainda a referência a uma função denominada MONTHS que não existe no Oracle.

A alternativa E está correta porque utiliza a função MONTHS_BETWEEN com a sintaxe correta e os argumentos apropriados para o que foi solicitado no enunciado. A função calcula corretamente a diferença em meses entre a data atual do sistema (SYSDATE) e a data de admissão do funcionário armazenada no campo FDatAdm.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions089.htm

MONTHS_BETWEEN returns number of months between dates date1 and date2. If date1 is later than date2, then the result is positive. Ifdate1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise Oracle Database calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2.

Examples

The following example calculates the months between two dates:

SELECT MONTHS_BETWEEN (TO_DATE('02-02-1995','MM-DD-YYYY'), TO_DATE('01-01-1995','MM-DD-YYYY') ) "Months" FROM DUAL; Months ---------- 1.03225806


Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo