Questão nº 31
Questão de Informática · FGV SEFIN-RO 2018 (nº 31)
FGV2018Auditor Fiscal de Tributos EstaduaisInformática
Gabarito: Bver comentário ↓
No Oracle, o comando SQL
`select * FROM DUAL`
produz um resultado que contém
- Azero linhas.
- Buma linha com uma coluna. (alternativa correta)
- Co nome do usuário que realizou a conexão.
- Dentre 1 e 20 linhas, com 3 colunas, dependendo dos parâmetros da instalação.
- Ea data e o horário correntes.
Resposta comentada
Gabarito Alternativa B
A tabela DUAL é uma tabela especial e pequena no Oracle, usada principalmente para executar comandos SQL que não precisam acessar dados de outras tabelas, mas exigem a cláusula FROM.
- (A) Incorreta: A tabela DUAL sempre contém exatamente uma linha.
- (B) Correta: A tabela DUAL, por definição, possui uma única linha e uma única coluna (chamada
DUMMY), cujo valor é 'X'. O comandoSELECT * FROM DUALretorna o conteúdo dessa única linha e coluna. - (C) Incorreta: Embora seja comum usar
SELECT USER FROM DUAL;para obter o nome do usuário, o comandoSELECT * FROM DUALsozinho não retorna o nome do usuário. Ele retorna o conteúdo da tabela DUAL, que é a colunaDUMMYcom o valor 'X'. A armadilha aqui é confundir a utilidade da DUAL para executar funções (comoUSER) com o conteúdo intrínseco da DUAL quando se seleciona tudo (*). - (D) Incorreta: A estrutura da tabela DUAL é fixa e universal em todas as instalações Oracle: uma linha e uma coluna. Não varia com parâmetros de instalação.
- (E) Incorreta: Assim como na alternativa C, é possível obter a data e hora correntes usando
SELECT SYSDATE FROM DUAL;, mas o comandoSELECT * FROM DUALnão retorna a data e hora. Ele retorna o conteúdo da tabela DUAL. A armadilha é a mesma da alternativa C: confundir a DUAL como um "espaço" para executar funções de sistema com o seu próprio conteúdo.
Fonte: FGV SEFIN-RO 2018 Auditor Fiscal de Tributos Estaduais (Caderno Tipo 2). Reproduzida para fins de estudo.