Oracle SQL

Generating Random Numbers Between 1000 and 9999 in Oracle SQL2 min read

When working with Oracle databases, generating random numbers within a specific range is a common requirement. Whether you’re creating sample data for testing or implementing a feature that involves randomization, Oracle SQL provides a convenient way to generate random numbers. In this article, we’ll explore how to generate random numbers between 1000 and 9999 using Oracle SQL.

Using the DBMS_RANDOM Package:

Oracle provides the DBMS_RANDOM package, which includes the VALUE function to generate random numbers. To get a random number within a specified range, you can use the following formula:


  1. DBMS_RANDOM.VALUE(1000, 10000): This part generates a random decimal number between 1000 (inclusive) and 10000 (exclusive).
  2. FLOOR(): This function rounds down the decimal number to the nearest integer. In this context, it ensures that the generated number is an integer.
  3. FROM dual: The DUAL table is a one-row, one-column table present in all Oracle databases. It is often used in scenarios where a table is required, but the actual data is not relevant.

Putting It All Together:

To generate multiple random numbers, you can use the CONNECT BY LEVEL clause in combination with the DBMS_RANDOM package. Here’s an example of generating ten random numbers between 1000 and 9999:

This query generates a result set with ten rows, each containing a random number between 1000 and 9999.


Generating random numbers in Oracle SQL, especially within a specific range, is made simple with the DBMS_RANDOM package. Whether you’re populating a test database or implementing a feature that requires randomness, understanding how to generate random numbers in Oracle SQL is a valuable skill. By utilizing the techniques described in this article, you can easily incorporate randomization into your SQL queries and enhance the versatility of your database operations.

Leave a Comment