VALUE functions
Translation reference for DBMS_RANDOM.VALUE.
Description
The basic function gets a random number, greater than or equal to 0 and less than 1. Alternatively, you can get a random Oracle number
X, whereXis greater than or equal tolowand less thanhigh. (Oracle PL/SQL DBMS_RANDOM.VALUE)
This UDF is implemented using the Math.random function of Javascript to replicate the functionality of Oracle DBMS_RANDOM.VALUE function.
Syntax
DBMS_RANDOM.VALUE()
RETURN NUMBER;
DBMS_RANDOM.VALUE(
low NUMBER,
high NUMBER)
RETURN NUMBER;Custom UDF overloads
Setup data
The DBMS_RANDOM schema must be created.
CREATE SCHEMA IF NOT EXISTS DBMS_RANDOM;DBMS_RANDOM.VALUE_UDF()
Parameters
No parameters.
CREATE OR REPLACE FUNCTION DBMS_RANDOM.VALUE_UDF()
RETURNS DOUBLE
LANGUAGE JAVASCRIPT
AS
$$
return Math.random();
$$;Usage example
Oracle
SELECT DBMS_RANDOM.VALUE() FROM DUAL;|DBMS_RANDOM.VALUE() |
|--------------------------------------------|
|0.47337471168356406022193430290380483126 |Snowflake
SELECT
--** MSC-WARNING - MSCEWI1020 - CUSTOM UDF 'DBMS_RANDOM.VALUE_UDF' INSERTED. **
--** MSC-WARNING - MSCEWI3112 - DBMS_RANDOM.VALUE DIGITS OF PRECISION IS LOWER IN SNOWFLAKE **
DBMS_RANDOM.VALUE_UDF() FROM DUAL;|DBMS_RANDOM.VALUE() |
|--------------------|
|0.1014560867 |DBMS_RANDOM.VALUE_UDF(NUMBER, NUMBER)
Parameters
low: The lowest
NUMBERfrom which a random number is generated. The number generated is greater than or equal tolow.high: The highest
NUMBERused as a limit when generating a random number. The number generated will be less thanhigh.
CREATE OR REPLACE FUNCTION DBMS_RANDOM.VALUE_UDF(low double, high double)
RETURNS DOUBLE
LANGUAGE JAVASCRIPT
AS
$$
return LOW === HIGH? LOW : LOW < HIGH? Math.random() * (HIGH-LOW) + LOW: Math.random() * (LOW-HIGH) + HIGH;
$$;Usage example
Oracle
SELECT DBMS_RANDOM.VALUE(-10,30) FROM DUAL;|DBMS_RANDOM.VALUE(-10,30) |
|--------------------------------------------|
|16.0298681859960167648070354679783928085 |
Snowflake
SELECT
--** MSC-WARNING - MSCEWI1020 - CUSTOM UDF 'DBMS_RANDOM.VALUE_UDF' INSERTED. **
--** MSC-WARNING - MSCEWI3112 - DBMS_RANDOM.VALUE DIGITS OF PRECISION IS LOWER IN SNOWFLAKE **
DBMS_RANDOM.VALUE_UDF(-10,30) FROM DUAL;|DBMS_RANDOM.VALUE(-10,30) |
|----------------------------|
|-6.346055187 |
Known Issues
No issues were found.
Related EWIs
MSCEWI1020: CUSTOM UDF 'DBMS_RANDOM.VALUE' INSERTED.
MSCEWI3112: DBMS_RANDOM.VALUE DIGITS OF PRECISION IS LOWER IN SNOWFLAKE.
Last updated
Was this helpful?