Oracle DB trükkök 1. Rekord/sor generátor (Row Generator):

A terv adatoknál, előjelzések és egyéb más adat vetítéshez szükség lehet egy referencia adattáblára (12 hó, 365 nap, …) amelyre ráhúzzuk a számolási szabályokat.

Általában a dual táblát használhatjuk az egyszerű függvény érték kiszámítás megjelenítésére pl.:  logaritmus

select log(2,3456) as logx from dual 
=>
LOGX
11,75488750216346854436121683184344952622

 

 

Generátorok és használatuk:

-- 1.
SELECT ROWNUM as sorszam
FROM ( SELECT 1 as just_a_column
 FROM dual
 GROUP BY CUBE(1,2,3,4,5,6,7,8,9) )
WHERE ROWNUM <= 4
=>
SORSZAM
1
2
3
4
-- 2.
SELECT ROWNUM as sorszam
FROM ( SELECT 1 just_a_column
 FROM dual
 CONNECT BY LEVEL <= 4
 )
=>
1
2
3
4

 

-- 3.
SELECT 'Szo' as szo, LEVEL as szam FROM DUAL CONNECT BY LEVEL <= 4
=>
SZO SZAM
Szo 1
Szo 2
Szo 3
Szo 4

 

 

-- 4.
CREATE FUNCTION sorgen(pin_nor IN NUMBER)
RETURN numtab_type DETERMINISTIC
AS
 v_numtab numtab_type;
BEGIN
 v_numtab := new numtab_type();
 FOR i IN 1..pin_nor
 LOOP
 v_numtab.extend();
 v_numtab(i) := i;
 END LOOP;
 
 RETURN v_numtab;
END rowgen;
/
SELECT ROWNUM n FROM TABLE(sorgen(4));

 

 

select level "Szam", power(level,2) "Negyzet", power(level,3) "Kob" from dual connect by level <= 4;
=>
Szam Negyzet Kob
1         1           1
2        4           8
3        9           27
4       16          64

 

 

A bejegyzés kategóriája: Informatika, Oktatás, Statisztika
Kiemelt szavak: , .
Közvetlen link.