Genera datos aleatorios de texto y fechas con DBMS_RANDOM

En Oracle, los números, las cadenas de texto y las fechas son tres tipos de datos comunes utilizados en tablas. Aunque es de esperar que el paquete PL/SQL DBMS_RANDOM pueda generar números aleatorios, que de hecho puede hacerlo, también es capaz de generar valores de texto y fechas aleatorios.

Índice de Contenido
  1. Generación de números aleatorios
  2. Generación de cadenas de texto aleatorias
  3. Generación de fechas aleatorias
  4. Conclusión

Generación de números aleatorios

La función VALUE devuelve un número mayor o igual a cero y menor que 1, con una precisión de 38 dígitos.

SELECT DBMS_RANDOM.VALUE FROM DUAL;

Si se desea generar enteros en un rango dado, se pueden agregar los argumentos low_value y high_value, y truncar los decimales (el valor alto no se incluye como un valor posible). Por ejemplo, para obtener enteros aleatorios del 0 al 99, se puede utilizar el siguiente código:

SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) FROM DUAL;

Generación de cadenas de texto aleatorias

Para generar cadenas de texto aleatorias, se puede utilizar la función STRING y especificar un código que indique el tipo de cadena y la longitud deseada:

SELECT DBMS_RANDOM.STRING('A', 20) FROM DUAL;

Los códigos de tipo están documentados en el "Oracle Database 10g PL/SQL Packages and Types Reference". Algunos ejemplos de códigos de tipo son 'U' para generar letras mayúsculas, 'L' para generar letras minúsculas y 'A' para generar letras en mayúsculas y minúsculas.

Generación de fechas aleatorias

Oracle almacena las fechas como offsets enteros desde una fecha clave en el pasado (1 de enero del año 4712 a.C., por si te preguntabas). Esto significa que se pueden generar fechas aleatorias dentro de un rango determinado encontrando el número entero que corresponda a la fecha de inicio deseada y luego sumando un número entero aleatorio a ese valor.

Cómo generar un total acumulado en una consulta SQL

El número interno de la fecha actual se puede obtener utilizando la función TO_CHAR con el código de formato 'J':

SELECT TO_CHAR(SYSDATE, 'J') FROM DUAL;

Por ejemplo, para generar fechas aleatorias durante el año 2003, se debe determinar primero el número entero de la fecha del 1 de enero de 2003:

SELECT TO_CHAR(TO_DATE('01/01/03','mm/dd/yy'),'J') FROM DUAL;

El sistema responderá con 2452641. Por lo tanto, para generar una fecha aleatoria dentro de ese año, se utiliza DBMS_RANDOM.VALUE con un low_value de 2452641 y un high_value de 2452641+364, y se convierte a un formato de fecha:

SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(2452641,2452641+364)),'J') FROM DUAL;

Conclusión

En resumen, Oracle ofrece múltiples opciones para generar números, cadenas de texto y fechas aleatorias. Estas funcionalidades son muy útiles en situaciones donde se requiere generar datos de prueba o simulaciones de manera aleatoria.

Cómo instalar y configurar Sybase Adaptive Server Enterprise (ASE) en Linux

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de datos, allí encontraras muchos artículos similares a Genera datos aleatorios de texto y fechas con DBMS_RANDOM , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.