Z mých zkušeností zná tuto tabulku každý databázový vývojář a v
podstatě žádný Java/ORM vývojář, což není překvapující - pokud
programujete přímo v databázi, některé konstrukce nejsou bez této
tabulky zbytečně obtížné, ne-li nemožné. Pro programátora užívající ORM
pak "ztácí" tabulka význam. Slovo "ztrácí" je v uvozovkách oprávněně: Na běžnou práci v ORM skutečně tabulka není potřeba. Pokud chceme databázi používat efektivně a nebo jsme nuceni volat některé databázové funkce přímo, tabulka se nám náramě hodí.
Tabulka dual je tabulka vlastní všem Oracle databázím a obsahuje typicky jeden sloupec jménem DUMMY a jeden řádek s hodnotou 'X' typu VARCHAR2(1).
select * from dual;
Proč je tedy tak důležitá? Pomocí této tabulky lze libovolnou hodnotu, literál či výstup funkce převést do relace - t.j. tabulky.
na příklad:
select 'hello world' from dual;
select 1+1 from dual;
select sysdate from dual;
Všechny tyto příklady mají jednu věc společnou - vytvářejí z "ničeho" tabulku. Velmi často se tabulka hodí pro volání databázových funkcí.
select 1+9/4, trunc(1+9/4),DBMS_RANDOM.RANDOM from dual;
Dotaz ukazuje volání funkce "trunc", jež slouží oříznutí desetinné části z čísla a zároveň volá funkci pro generování náhodného čísla.
Výsledek dotazů je pak třísloupcová tabulka:
1+9/4 TRUNC(1+9/4) RANDOM
----- ------------ ------
3,25 3 610212023
Z předchozích příkladů je patrný význam tabulky dual: slouží nám jako jakýsi můstek mezi konvenčním procedurálním a relačním přístupem. Článek ukázal nejzákladnější použití tabulky. V dalších dílech bude tabulka využita v mnohem větší míře a její účel bude pak jasnější. Tak zase příště.
Žádné komentáře:
Okomentovat