quinta-feira, 7 de abril de 2011

ORACLE - Geração de Registros Através da Tabela DUAL

No Oracle é possível gerar registros com valores fixos a partir da tabela DUAL.
Dessa forma, pode-se evitar a criação de tabelas temporárias desnecessárias.

No exemplo abaixo, são gerados 3 registros utilizando esta tabela.

SELECT 121 cd, 'Vitoria' cidade FROM dual union all
SELECT 254 cd, 'Sao Paulo' cidade FROM dual union all
SELECT 335 cd, 'Rio de Janeiro' cidade FROM dual;

Saída:

CD CIDADE
121 Vitoria
254 Sao Paulo
335 Rio de Janeiro

No outro exemplo abaixo, podemos gerar um contador para os novos registros criados.
A lógica aplicada abaixo pode ser usada, por exemplo, para gerar uma consulta de intervalo de dias ou intervalo de horas.

SELECT rownum id, 'Teste'||level dsc
FROM dual
CONNECT BY level <=500;

Saída:
ID DSC
1 Teste1
2 Teste2
3 Teste3
4 Teste4
... ...
500 Teste500