Ouvi pessoas se referindo a esta tabela e não tinha certeza do que se tratava.
oracle
dual-table
Brian G
fonte
fonte
Respostas:
É uma espécie de tabela fictícia com um único registro usado para selecionar quando você não está realmente interessado nos dados, mas deseja os resultados de alguma função do sistema em uma instrução select:
por exemplo
select sysdate from dual;
Consulte http://www.adp-gmbh.ch/ora/misc/dual.html
fonte
É uma mesa fictícia com um elemento. É útil porque o Oracle não permite declarações como
Você pode contornar essa restrição escrevendo
em vez de.
fonte
Da Wikipedia
História
A tabela DUAL foi criada por Chuck Weiss, da Oracle Corporation, para fornecer uma tabela para ingressar em visualizações internas:
Pode não ser óbvio pelo exposto acima, mas a tabela DUAL original tinha duas linhas (daí o nome). Atualmente, ele possui apenas uma linha.
Otimização
O DUAL era originalmente uma tabela e o mecanismo de banco de dados executaria E / S de disco na tabela ao selecionar DUAL. Essa E / S de disco era normalmente E / S lógica (sem envolver acesso físico ao disco), pois os blocos de disco já estavam em cache na memória. Isso resultou em uma grande quantidade de E / S lógica contra a tabela DUAL.
Versões posteriores do banco de dados Oracle foram otimizadas e o banco de dados não executa mais IO física ou lógica na tabela DUAL, mesmo que a tabela DUAL ainda exista.
fonte
Acho que este artigo da Wikipedia pode ajudar a esclarecer.
http://en.wikipedia.org/wiki/DUAL_table
fonte
É a tabela especial no Oracle. Costumo usá-lo para cálculos ou verificação de variáveis do sistema. Por exemplo:
Select 2*4 from dual
imprime o resultado do cálculoSelect sysdate from dual
imprime a data atual do servidor.fonte
Tipo de uma pseudo tabela na qual você pode executar comandos e recuperar resultados, como sysdate. Também ajuda a verificar se o Oracle está ativo e verificar a sintaxe sql etc.
fonte
Uma tabela de utilitários no Oracle com apenas 1 linha e 1 coluna. É usado para executar várias operações aritméticas e pode ser usado geralmente onde é necessário gerar uma saída conhecida.
SELECT * FROM dual;
fornecerá uma única linha, com uma única coluna chamada "DUMMY" e um valor de "X", como mostrado aqui:
fonte
Mais fatos sobre o DUAL ....
http://asktom.oracle.com/pls/asktom/f?p=100:11ieved::::P11_QUESTION_ID:1562813956388
Experiências emocionantes feitas aqui e explicações mais emocionantes de Tom
fonte
A tabela DUAL é uma tabela especial de uma linha presente por padrão em todas as instalações de banco de dados Oracle. É adequado para uso na seleção de uma pseudocoluna, como SYSDATE ou USER
A tabela possui uma única coluna VARCHAR2 (1) chamada DUMMY que possui o valor "X"
Você pode ler tudo sobre isso em http://en.wikipedia.org/wiki/DUAL_table
fonte
DUAL é necessário no desenvolvimento PL / SQL para usar funções que estão disponíveis apenas no SQL
por exemplo
fonte
É um objeto para colocar a partir dessa linha de retorno 1 vazia. Por exemplo: selecione 1 de dual; retorna 1
selecione 21 + 44 de dual; retorna 65
selecione [sequence] .nextval de dual; retorna o próximo valor da sequência.
fonte
DUAL, usamos principalmente para obter o próximo número das seqüências.
Sintaxe: SELECT 'sequence_name'.NEXTVAL FROM DUAL
Isso retornará o valor de uma linha, uma coluna (nome da coluna NEXTVAL).
fonte
Outra situação que requer
select ... from dual
é quando queremos recuperar o código (definição de dados) para diferentes objetos de banco de dados (como TABLE, FUNCTION, TRIGGER, PACKAGE), usando aDBMS_METADATA.GET_DDL
função incorporada:é verdade que atualmente os IDEs oferecem a capacidade de visualizar o DDL de uma tabela, mas em ambientes mais simples como o SQL Plus isso pode ser realmente útil.
EDITAR
uma situação mais geral: basicamente, quando precisamos usar qualquer procedimento PL / SQL dentro de uma instrução SQL padrão ou quando queremos chamar um procedimento a partir da linha de comando:
ambas as receitas são retiradas do livro 'Oracle PL / SQL Recipes' de Josh Juneau e Matt Arena
fonte
O DUAL é uma linha especial, uma tabela de coluna presente por padrão em todos os bancos de dados Oracle. O proprietário do DUAL é SYS.
DUAL é uma tabela criada automaticamente pelo Oracle Database junto com as funções de dados. É sempre usado para obter as funções do sistema operacional (como data, hora, expressão aritmética. Etc.)
fonte