[ Foro de SQL (y MySQL) ]

EJERCICIO SQL

08-Feb-2021 12:12
Invitado (IVAN)
0 Respuestas

ME GUSTARÍA QUE ME SOLUCIONARAN ESTE EJERCICIO, ME URGE.. GRACIAS...

Esta tarea consiste:

Nos piden realizar un bloque anónimo para obtener el numero ganador de una lotería:


partiremos de una tabla llamada CESTA, que tendrá dos campos number (POSICION y GANADOR).

Esta tabla la rellenaremos con un número secuencial 1,2,3... (del 1 al 1.000) y en número aleatorio la rellenaremos con un numero aleatorio,

creación de la tabla:

create table CESTA (create table CESTA ( posicion number, ganador number);

el numero aleatorio lo obtendremos con una función de Oracle (DBMS_RANDOM). Esta función la debemos configurar para que devuelva un valor aleatorio en el rango de 0 a 10.000

TRUNC(DBMS_RANDOM.VALUE(1,1000));

Es decir, la primera parte del ejercicio es hacer un bucle FOR de 1 a 1000 para rellenar esta tabla con los 1000 valores. en el campo posición, ira un secuencial 1, 2, 3.... y en la posición ganador, ira el resultado de la función RANDOM. Ejemplo de la tabla


POSICION
GANADOR
1
82
2
152
3
9800
4
458

1000
622

El Bloque anónimo, solicitará al usuario un valor (debemos chequear que este valor este comprendido entre 1 y 1.000). Si el valor no está en este rango, debemos mostrar un mensaje: “error, el valor introducido no es correcto”.

Si el valor está en el rango correcto, buscaremos ese valor en la tabla Lotería por el campo Numero_secuencial, y mostraremos como numero ganador que es el valor almacenado en Numero_aleatorio. Indicaremos el mensaje. “EL GANADOR ES ….”.

Mostramos un Ejemplo de la tabla.
Si insertamos el valor 3 como variable de sustitución, tenemos que mostrar un mensaje diciendo EL GANADOR ES EL NUMERO 980.
POSICION GANADOR
1
82
2
152
3
9800
4
458

10000
622

Se pide escribir un bloque PL/SQL que de solución al problema planteado.

Probar el funcionamiento del bloque anónimo, insertando un valor en la variable de sustitución con el rango correcto y con el rango incorrecto.




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)