Objetivo:
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: