Таблица DUAL и для чего она нужна

В Oracle, в отличие от того же MS SQL Server, нельзя сделать запрос "из ниоткуда".

SELECT 1;

SELECT 1
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected

Поэтому в большинстве запросов должна быть ссылка на таблицу или представление. Как правило, для таких запросов используется таблица DUAL. Таблица DUAL - это реальная таблица в схеме SYS, содержащая только одну запись.

SELECT * FROM DUAL;

DUMMY
-----
X

1 rows selected


Как можно использовать таблицу DUAL в запросах? К примеру мы хотим получить системное время. Тогда, раз что-то во FROM указывать надо - укажем таблицу DUAL:

SELECT SYSDATE FROM DUAL;


SYSDATE
-------------------------
10.04.08

1 rows selected