Nota: Esta publicación no tiene el mínimo interés de fomentar y/o promover los juegos de azar de ningún tipo, quien escribe decidió utilizar el ejemplo de lotería debido a que entendimos que el mismo se presta para dar un idea mas clara de lo util que resulta el paquete DBMS_RANDOM de Oracle.
____________________________________________________________________________________SET SERVEROUTPUT ON
DECLARE
TYPE typ_rec_lottery IS RECORD
(
number_one NUMBER,
number_two NUMBER,
number_three NUMBER
);
TYPE typ_tab_lottery IS
TABLE OF typ_rec_lottery
INDEX BY BINARY_INTEGER;
v_lottery_list typ_tab_lottery;
v_lottery_name VARCHAR2(10);
v_lottery_time VARCHAR2(25);
BEGIN
FOR i IN 1..3 LOOP
v_lottery_list(i).number_one := TRUNC(DBMS_RANDOM.value(0, 99));
v_lottery_list(i).number_two := TRUNC(DBMS_RANDOM.value(0, 99));
v_lottery_list(i).number_three := TRUNC(DBMS_RANDOM.value(0, 99));
END LOOP;
FOR i IN 1..v_lottery_list.COUNT LOOP
CASE
WHEN i < 2 THEN
v_lottery_name := 'Matutina';
v_lottery_time := '10:30:00 AM';
WHEN i > 2 THEN
v_lottery_name := 'Nocturna';
v_lottery_time := '9:30:00 PM';
ELSE
v_lottery_name := 'Vespertina';
v_lottery_time := '3:30:00 PM';
END CASE;
DBMS_OUTPUT.PUT_LINE
(
'<<Lotería '||v_lottery_name||'>>'||CHR(9)||'Hora: '||v_lottery_time||CHR(10)||
'Primer Número: '||v_lottery_list(i).number_one||CHR(10)||
'Segundo Número: '||v_lottery_list(i).number_two||CHR(10)||
'Tercer Número: '||v_lottery_list(i).number_three||CHR(10)||
RPAD('-',40,'-')
);
END LOOP;
END;
/**/
---OUTPUT: