Na generovanie použijeme príkaz SQL "CONNECT BY", ktorý sa využíva hlavne pri generovaní hierarchických dotazov - dotazov s riadkami prepojených pomocou tzv. "parent" a "child" riadkov, potom pseudostľpec "LEVEL", ktorý v tomto prípade využívame na čítanie inkrementovanej hodnoty do splnenia podmienky - "CONNECT BY LEVEL <= 10". Ďalej využijeme pomocnú tabuľku "DUAL", ktorá obsahuje jeden riadok s jednou hodnotou a využíva sa na zobrazovanie akýchkoľvek vymyslených/generovaných hodnôt/hodnoty pre rôzne účely. Pomocou dole uvedených dotazov si vygenerujeme zoznamy pre rôzne účely. Hodnoty týchto záznamov sú dynamicky generované - nie su uložené v žiadnej užívateľskej tabuľke.
Príklady:
-- zoznam čísel od 1 do 10 SELECT LEVEL AS "NUMBER" FROM DUAL CONNECT BY LEVEL <= 10;
-- zoznam 5 minútových intervalov SELECT TO_CHAR(TRUNC(SYSDATE)+LEVEL/288,'HH24:MI:SS') AS "TIME" FROM DUAL CONNECT BY LEVEL <= 288;
-- zoznam 10 minútových intervalov SELECT TO_CHAR(TRUNC(SYSDATE)+LEVEL/144,'HH24:MI:SS') AS "TIME" FROM DUAL CONNECT BY LEVEL <= 144;
-- zoznam hodinových intervalov SELECT TO_CHAR(TRUNC(SYSDATE)+LEVEL/24,'HH24:MI:SS') AS "TIME" FROM DUAL CONNECT BY LEVEL <= 24;
-- kalendár dní aktuálneho mesiaca SELECT TO_CHAR(TRUNC(SYSDATE,'MM')+LEVEL-1,'DD.MM.YYYY') AS "DATE" FROM DUAL CONNECT BY LEVEL <= TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE),'DD'));
-- abeceda SELECT CHR(LEVEL+64) AS "LETTER" FROM DUAL CONNECT BY LEVEL <= 26;
S pozdravom Alojz Benďák